home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1994-01-04 | 54.8 KB | [TEXT/ROSA] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Tue Jan 4 14:48:17 1994, modified Tue Jan 4 14:48:17 1994, creator 'ROSA', type ASCII, 55397 bytes "loop.lisp" , at 0xd8e5 428 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [ROSA] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 6c 6f 6f 70 2e 6c | 69 73 70 00 00 00 00 00 |..loop.l|isp.....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 52 4f 53 | 41 01 00 00 00 00 00 00 |.TEXTROS|A.......|
|00000050| 00 00 00 00 00 d8 65 00 | 00 01 ac a9 4f 78 81 a9 |......e.|....Ox..|
|00000060| 4f 78 81 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |Ox......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 98 56 00 00 |........|.....V..|
|00000080| 3b 3b 3b 09 20 20 4c 4f | 4f 50 09 2d 2a 2d 20 4d |;;;. LO|OP.-*- M|
|00000090| 6f 64 65 3a 4c 49 53 50 | 3b 20 53 79 6e 74 61 78 |ode:LISP|; Syntax|
|000000a0| 3a 43 6f 6d 6d 6f 6e 2d | 4c 69 73 70 3b 20 50 61 |:Common-|Lisp; Pa|
|000000b0| 63 6b 61 67 65 3a 28 4c | 4f 4f 50 20 28 43 4f 4d |ckage:(L|OOP (COM|
|000000c0| 4d 4f 4e 2d 4c 49 53 50 | 29 3b 20 42 61 73 65 3a |MON-LISP|); Base:|
|000000d0| 31 30 3b 20 4c 6f 77 65 | 72 63 61 73 65 3a 54 20 |10; Lowe|rcase:T |
|000000e0| 2d 2a 2d 0d 3b 3b 3b 09 | 20 20 2a 2a 2a 2a 2a 2a |-*-.;;;.| ******|
|000000f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000100| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000110| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000120| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000130| 0d 3b 3b 3b 09 20 20 2a | 2a 2a 2a 2a 2a 20 43 6f |.;;;. *|***** Co|
|00000140| 6d 6d 6f 6e 20 4c 69 73 | 70 20 2a 2a 2a 2a 2a 2a |mmon Lis|p ******|
|00000150| 2a 2a 20 4c 4f 4f 50 20 | 49 74 65 72 61 74 69 6f |** LOOP |Iteratio|
|00000160| 6e 20 4d 61 63 72 6f 20 | 2a 2a 2a 2a 2a 2a 2a 2a |n Macro |********|
|00000170| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 0d 3b 3b |********|*****.;;|
|00000180| 3b 09 20 20 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |;. ****|********|
|00000190| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 0d 3b 3b 3b 09 20 |********|**.;;;. |
|000001d0| 20 2a 2a 2a 2a 20 28 43 | 29 20 43 4f 50 59 52 49 | **** (C|) COPYRI|
|000001e0| 47 48 54 20 31 39 38 30 | 2c 20 31 39 38 31 20 4d |GHT 1980|, 1981 M|
|000001f0| 41 53 53 41 43 48 55 53 | 45 54 54 53 20 49 4e 53 |ASSACHUS|ETTS INS|
|00000200| 54 49 54 55 54 45 20 4f | 46 20 54 45 43 48 4e 4f |TITUTE O|F TECHNO|
|00000210| 4c 4f 47 59 20 2a 2a 0d | 3b 3b 3b 09 20 20 2a 2a |LOGY **.|;;;. **|
|00000220| 2a 2a 2a 2a 2a 2a 20 54 | 48 49 53 20 49 53 20 41 |****** T|HIS IS A|
|00000230| 20 52 45 41 44 2d 4f 4e | 4c 59 20 46 49 4c 45 21 | READ-ON|LY FILE!|
|00000240| 20 28 41 4c 4c 20 57 52 | 49 54 45 53 20 52 45 53 | (ALL WR|ITES RES|
|00000250| 45 52 56 45 44 29 20 2a | 2a 2a 2a 2a 2a 2a 2a 2a |ERVED) *|********|
|00000260| 2a 2a 2a 2a 0d 3b 3b 3b | 09 20 20 2a 2a 2a 2a 2a |****.;;;|. *****|
|00000270| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000280| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000290| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000002a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000002b0| 2a 0d 0d 3b 3b 3b 3b 20 | 4c 4f 4f 50 20 49 74 65 |*..;;;; |LOOP Ite|
|000002c0| 72 61 74 69 6f 6e 20 4d | 61 63 72 6f 0d 0d 3b 3b |ration M|acro..;;|
|000002d0| 3b 20 54 68 69 73 20 69 | 73 20 74 68 65 20 22 6f |; This i|s the "o|
|000002e0| 66 66 69 63 69 61 6c 6c | 79 20 73 61 6e 63 74 69 |fficiall|y sancti|
|000002f0| 6f 6e 65 64 22 20 76 65 | 72 73 69 6f 6e 20 6f 66 |oned" ve|rsion of|
|00000300| 20 4c 4f 4f 50 20 66 6f | 72 20 72 75 6e 6e 69 6e | LOOP fo|r runnin|
|00000310| 67 20 69 6e 0d 3b 3b 3b | 20 43 6f 6d 6d 6f 6e 20 |g in.;;;| Common |
|00000320| 4c 69 73 70 2e 20 20 49 | 74 20 69 73 20 61 20 63 |Lisp. I|t is a c|
|00000330| 6f 6e 76 65 72 73 69 6f | 6e 20 6f 66 20 4c 4f 4f |onversio|n of LOO|
|00000340| 50 20 38 32 39 2c 20 77 | 68 69 63 68 20 69 73 20 |P 829, w|hich is |
|00000350| 66 61 69 72 6c 79 20 63 | 6c 6f 73 65 20 74 6f 0d |fairly c|lose to.|
|00000360| 3b 3b 3b 20 74 68 61 74 | 20 72 65 6c 65 61 73 65 |;;; that| release|
|00000370| 64 20 77 69 74 68 20 53 | 79 6d 62 6f 6c 69 63 73 |d with S|ymbolics|
|00000380| 20 52 65 6c 65 61 73 65 | 20 36 2e 31 20 28 38 30 | Release| 6.1 (80|
|00000390| 33 29 2e 09 20 54 68 69 | 73 20 63 6f 6e 76 65 72 |3).. Thi|s conver|
|000003a0| 73 69 6f 6e 20 77 61 73 | 0d 3b 3b 3b 20 6d 61 64 |sion was|.;;; mad|
|000003b0| 65 20 62 79 20 47 6c 65 | 6e 6e 20 42 75 72 6b 65 |e by Gle|nn Burke|
|000003c0| 20 28 6f 6e 65 20 6f 66 | 20 74 68 65 20 6f 72 69 | (one of| the ori|
|000003d0| 67 69 6e 61 6c 20 61 75 | 74 68 6f 72 2f 6d 61 69 |ginal au|thor/mai|
|000003e0| 6e 74 61 69 6e 65 72 73 | 29 3b 20 20 74 68 65 0d |ntainers|); the.|
|000003f0| 3b 3b 3b 20 77 6f 72 6b | 20 77 61 73 20 70 65 72 |;;; work| was per|
|00000400| 66 6f 72 6d 65 64 20 61 | 74 20 50 61 6c 6c 61 64 |formed a|t Pallad|
|00000410| 69 61 6e 20 53 6f 66 74 | 77 61 72 65 2c 20 69 6e |ian Soft|ware, in|
|00000420| 20 43 61 6d 62 72 69 64 | 67 65 20 4d 41 2c 20 41 | Cambrid|ge MA, A|
|00000430| 70 72 69 6c 20 31 39 38 | 36 2e 0d 3b 3b 3b 20 0d |pril 198|6..;;; .|
|00000440| 3b 3b 3b 20 54 68 65 20 | 63 75 72 72 65 6e 74 20 |;;; The |current |
|00000450| 76 65 72 73 69 6f 6e 20 | 6f 66 20 74 68 69 73 20 |version |of this |
|00000460| 66 69 6c 65 20 77 69 6c | 6c 20 62 65 20 6d 61 69 |file wil|l be mai|
|00000470| 6e 74 61 69 6e 65 64 20 | 61 74 20 4d 49 54 2c 20 |ntained |at MIT, |
|00000480| 61 76 61 69 6c 61 62 6c | 65 0d 3b 3b 3b 20 66 6f |availabl|e.;;; fo|
|00000490| 72 20 61 6e 6f 6e 79 6d | 6f 75 73 20 46 54 50 20 |r anonym|ous FTP |
|000004a0| 6f 6e 20 4d 43 2e 4c 43 | 53 2e 4d 49 54 2e 45 44 |on MC.LC|S.MIT.ED|
|000004b0| 55 20 66 72 6f 6d 20 74 | 68 65 20 66 69 6c 65 20 |U from t|he file |
|000004c0| 22 4c 53 42 31 3b 43 4c | 4c 4f 4f 50 20 3e 22 2e |"LSB1;CL|LOOP >".|
|000004d0| 09 54 68 69 73 0d 3b 3b | 3b 20 6c 6f 63 61 74 69 |.This.;;|; locati|
|000004e0| 6f 6e 20 77 69 6c 6c 20 | 6e 6f 20 64 6f 75 62 74 |on will |no doubt|
|000004f0| 20 63 68 61 6e 67 65 20 | 73 6f 6d 65 74 69 6d 65 | change |sometime|
|00000500| 20 69 6e 20 74 68 65 20 | 66 75 74 75 72 65 2e 0d | in the |future..|
|00000510| 3b 3b 3b 20 0d 3b 3b 3b | 20 54 68 69 73 20 66 69 |;;; .;;;| This fi|
|00000520| 6c 65 2c 20 6c 69 6b 65 | 20 74 68 65 20 4c 4f 4f |le, like| the LOO|
|00000530| 50 20 69 74 20 69 73 20 | 64 65 72 69 76 65 64 20 |P it is |derived |
|00000540| 66 72 6f 6d 2c 20 68 61 | 73 20 75 6e 72 65 73 74 |from, ha|s unrest|
|00000550| 72 69 63 74 65 64 0d 3b | 3b 3b 20 64 69 73 74 72 |ricted.;|;; distr|
|00000560| 69 62 75 74 69 6f 6e 20 | 2d 2d 20 61 6e 79 6f 6e |ibution |-- anyon|
|00000570| 65 20 6d 61 79 20 74 61 | 6b 65 20 69 74 20 61 6e |e may ta|ke it an|
|00000580| 64 20 75 73 65 20 69 74 | 2e 09 42 75 74 20 66 6f |d use it|..But fo|
|00000590| 72 20 74 68 65 20 73 61 | 6b 65 20 6f 66 0d 3b 3b |r the sa|ke of.;;|
|000005a0| 3b 20 63 6f 6e 73 69 73 | 74 65 6e 63 79 2c 20 62 |; consis|tency, b|
|000005b0| 75 67 20 72 65 70 6f 72 | 74 69 6e 67 2c 20 63 6f |ug repor|ting, co|
|000005c0| 6d 70 61 74 69 62 69 6c | 69 74 79 2c 20 61 6e 64 |mpatibil|ity, and|
|000005d0| 20 75 73 65 72 73 27 20 | 73 61 6e 69 74 79 2c 20 | users' |sanity, |
|000005e0| 50 4c 45 41 53 45 0d 3b | 3b 3b 20 50 4c 45 41 53 |PLEASE.;|;; PLEAS|
|000005f0| 45 20 50 4c 45 41 53 45 | 20 64 6f 6e 27 74 20 67 |E PLEASE| don't g|
|00000600| 6f 20 6f 76 65 72 62 6f | 61 72 64 20 77 69 74 68 |o overbo|ard with|
|00000610| 20 66 69 78 65 73 20 6f | 72 20 63 68 61 6e 67 65 | fixes o|r change|
|00000620| 73 2e 09 20 52 65 6d 65 | 6d 62 65 72 20 74 68 61 |s.. Reme|mber tha|
|00000630| 74 0d 3b 3b 3b 20 74 68 | 69 73 20 76 65 72 73 69 |t.;;; th|is versi|
|00000640| 6f 6e 20 69 73 20 73 75 | 70 70 6f 73 65 64 20 74 |on is su|pposed t|
|00000650| 6f 20 62 65 20 63 6f 6d | 70 61 74 69 62 6c 65 20 |o be com|patible |
|00000660| 77 69 74 68 20 74 68 65 | 20 4d 61 63 6c 69 73 70 |with the| Maclisp|
|00000670| 2f 5a 65 74 61 6c 69 73 | 70 2f 4e 49 4c 0d 3b 3b |/Zetalis|p/NIL.;;|
|00000680| 3b 20 4c 4f 4f 50 3b 20 | 20 69 74 20 69 73 20 4e |; LOOP; | it is N|
|00000690| 4f 54 20 69 6e 74 65 6e | 64 65 64 20 74 6f 20 62 |OT inten|ded to b|
|000006a0| 65 20 22 64 69 66 66 65 | 72 65 6e 74 22 20 6f 72 |e "diffe|rent" or|
|000006b0| 20 22 62 65 74 74 65 72 | 22 20 6f 72 20 22 72 65 | "better|" or "re|
|000006c0| 64 65 73 69 67 6e 65 64 | 22 2e 0d 3b 3b 3b 20 52 |designed|"..;;; R|
|000006d0| 65 70 6f 72 74 20 62 75 | 67 73 20 61 6e 64 20 70 |eport bu|gs and p|
|000006e0| 72 6f 70 6f 73 65 20 66 | 69 78 65 73 20 74 6f 20 |ropose f|ixes to |
|000006f0| 42 55 47 2d 4c 4f 4f 50 | 40 4d 43 2e 4c 43 53 2e |BUG-LOOP|@MC.LCS.|
|00000700| 4d 49 54 2e 45 44 55 3b | 0d 3b 3b 3b 20 61 6e 6e |MIT.EDU;|.;;; ann|
|00000710| 6f 75 6e 63 65 6d 65 6e | 74 73 20 61 62 6f 75 74 |ouncemen|ts about|
|00000720| 20 4c 4f 4f 50 20 77 69 | 6c 6c 20 62 65 20 6d 61 | LOOP wi|ll be ma|
|00000730| 64 65 20 74 6f 20 74 68 | 65 20 6d 61 69 6c 69 6e |de to th|e mailin|
|00000740| 67 20 6c 69 73 74 0d 3b | 3b 3b 20 49 4e 46 4f 2d |g list.;|;; INFO-|
|00000750| 4c 4f 4f 50 40 4d 43 2e | 4c 43 53 2e 4d 49 54 2e |LOOP@MC.|LCS.MIT.|
|00000760| 45 44 55 2e 20 20 4d 61 | 69 6c 20 63 6f 6e 63 65 |EDU. Ma|il conce|
|00000770| 72 6e 69 6e 67 20 74 68 | 6f 73 65 20 6c 69 73 74 |rning th|ose list|
|00000780| 73 20 28 73 75 63 68 20 | 61 73 20 72 65 71 75 65 |s (such |as reque|
|00000790| 73 74 73 0d 3b 3b 3b 20 | 74 6f 20 62 65 20 61 64 |sts.;;; |to be ad|
|000007a0| 64 65 64 29 20 73 68 6f | 75 6c 64 20 62 65 20 73 |ded) sho|uld be s|
|000007b0| 65 6e 74 20 74 6f 20 74 | 68 65 20 42 55 47 2d 4c |ent to t|he BUG-L|
|000007c0| 4f 4f 50 2d 52 45 51 55 | 45 53 54 20 61 6e 64 0d |OOP-REQU|EST and.|
|000007d0| 3b 3b 3b 20 49 4e 46 4f | 2d 4c 4f 4f 50 2d 52 45 |;;; INFO|-LOOP-RE|
|000007e0| 51 55 45 53 54 20 6c 69 | 73 74 73 20 72 65 73 70 |QUEST li|sts resp|
|000007f0| 65 63 74 69 76 65 6c 79 | 2e 20 20 4e 6f 74 65 20 |ectively|. Note |
|00000800| 74 68 65 20 43 68 61 6e | 67 65 20 48 69 73 74 6f |the Chan|ge Histo|
|00000810| 72 79 20 70 61 67 65 0d | 3b 3b 3b 20 62 65 6c 6f |ry page.|;;; belo|
|00000820| 77 2e 2e 2e 0d 3b 3b 3b | 20 0d 3b 3b 3b 20 4c 4f |w....;;;| .;;; LO|
|00000830| 4f 50 20 64 6f 63 75 6d | 65 6e 74 61 74 69 6f 6e |OP docum|entation|
|00000840| 20 69 73 20 73 74 69 6c | 6c 20 70 72 6f 62 61 62 | is stil|l probab|
|00000850| 6c 79 20 61 76 61 69 6c | 61 62 6c 65 20 66 72 6f |ly avail|able fro|
|00000860| 6d 20 74 68 65 20 4d 49 | 54 20 4c 61 62 6f 72 61 |m the MI|T Labora|
|00000870| 74 6f 72 79 0d 3b 3b 3b | 20 66 6f 72 20 43 6f 6d |tory.;;;| for Com|
|00000880| 70 75 74 65 72 20 53 63 | 69 65 6e 63 65 20 70 75 |puter Sc|ience pu|
|00000890| 62 6c 69 63 61 74 69 6f | 6e 73 20 6f 66 66 69 63 |blicatio|ns offic|
|000008a0| 65 3a 0d 3b 3b 3b 09 09 | 4c 43 53 20 50 75 62 6c |e:.;;;..|LCS Publ|
|000008b0| 69 63 61 74 69 6f 6e 73 | 0d 3b 3b 3b 09 09 35 34 |ications|.;;;..54|
|000008c0| 35 20 54 65 63 68 6e 6f | 6c 6f 67 79 20 53 71 75 |5 Techno|logy Squ|
|000008d0| 61 72 65 0d 3b 3b 3b 09 | 09 43 61 6d 62 72 69 64 |are.;;;.|.Cambrid|
|000008e0| 67 65 2c 20 4d 41 20 30 | 32 31 33 39 0d 3b 3b 3b |ge, MA 0|2139.;;;|
|000008f0| 20 49 74 20 69 73 20 54 | 65 63 68 6e 69 63 61 6c | It is T|echnical|
|00000900| 20 4d 65 6d 6f 20 31 36 | 39 2c 20 22 4c 4f 4f 50 | Memo 16|9, "LOOP|
|00000910| 20 49 74 65 72 61 74 69 | 6f 6e 20 4d 61 63 72 6f | Iterati|on Macro|
|00000920| 22 2c 20 61 6e 64 20 69 | 73 20 76 65 72 79 20 6f |", and i|s very o|
|00000930| 6c 64 2e 09 54 68 65 0d | 3b 3b 3b 20 6d 6f 73 74 |ld..The.|;;; most|
|00000940| 20 75 70 2d 74 6f 2d 64 | 61 74 65 20 64 6f 63 75 | up-to-d|ate docu|
|00000950| 6d 65 6e 74 61 74 69 6f | 6e 20 6f 6e 20 74 68 69 |mentatio|n on thi|
|00000960| 73 20 76 65 72 73 69 6f | 6e 20 6f 66 20 4c 4f 4f |s versio|n of LOO|
|00000970| 50 20 69 73 20 74 68 61 | 74 20 69 6e 20 74 68 65 |P is tha|t in the|
|00000980| 20 4e 49 4c 0d 3b 3b 3b | 20 52 65 66 65 72 65 6e | NIL.;;;| Referen|
|00000990| 63 65 20 4d 61 6e 75 61 | 6c 20 28 54 52 2d 33 31 |ce Manua|l (TR-31|
|000009a0| 31 20 66 72 6f 6d 20 4c | 43 53 20 50 75 62 6c 69 |1 from L|CS Publi|
|000009b0| 63 61 74 69 6f 6e 73 29 | 3b 20 20 77 68 69 6c 65 |cations)|; while|
|000009c0| 20 79 6f 75 20 77 6f 75 | 6c 64 6e 27 74 0d 3b 3b | you wou|ldn't.;;|
|000009d0| 3b 20 77 61 6e 74 20 74 | 6f 20 67 65 74 20 74 68 |; want t|o get th|
|000009e0| 61 74 20 28 69 74 20 63 | 6f 73 74 73 20 6e 65 61 |at (it c|osts nea|
|000009f0| 72 6c 79 20 24 31 35 29 | 20 6a 75 73 74 20 66 6f |rly $15)| just fo|
|00000a00| 72 20 4c 4f 4f 50 20 64 | 6f 63 75 6d 65 6e 74 61 |r LOOP d|ocumenta|
|00000a10| 74 69 6f 6e 2c 0d 3b 3b | 3b 20 74 68 6f 73 65 20 |tion,.;;|; those |
|00000a20| 77 69 74 68 20 61 63 63 | 65 73 73 20 74 6f 20 61 |with acc|ess to a|
|00000a30| 20 4e 49 4c 20 6d 61 6e | 75 61 6c 20 6d 69 67 68 | NIL man|ual migh|
|00000a40| 74 20 70 68 6f 74 6f 63 | 6f 70 79 20 74 68 65 20 |t photoc|opy the |
|00000a50| 63 68 61 70 74 65 72 20 | 6f 6e 20 4c 4f 4f 50 2e |chapter |on LOOP.|
|00000a60| 0d 3b 3b 3b 20 54 68 61 | 74 20 72 65 76 69 73 65 |.;;; Tha|t revise|
|00000a70| 64 20 64 6f 63 75 6d 65 | 6e 74 61 74 69 6f 6e 20 |d docume|ntation |
|00000a80| 63 61 6e 20 62 65 20 72 | 65 69 73 73 75 65 64 20 |can be r|eissued |
|00000a90| 61 73 20 61 20 72 65 76 | 69 73 65 64 20 74 65 63 |as a rev|ised tec|
|00000aa0| 68 6e 69 63 61 6c 20 6d | 65 6d 6f 0d 3b 3b 3b 20 |hnical m|emo.;;; |
|00000ab0| 69 66 20 74 68 65 72 65 | 20 69 73 20 73 75 66 66 |if there| is suff|
|00000ac0| 69 63 69 65 6e 74 20 64 | 65 6d 61 6e 64 2e 0d 3b |icient d|emand..;|
|00000ad0| 3b 3b 20 0d 0d 3b 3b 3b | 3b 20 43 68 61 6e 67 65 |;; ..;;;|; Change|
|00000ae0| 20 48 69 73 74 6f 72 79 | 0d 3b 3b 3b 20 6a 62 73 | History|.;;; jbs|
|00000af0| 40 74 68 69 6e 6b 2e 63 | 6f 6d 09 31 30 2d 4f 63 |@think.c|om.10-Oc|
|00000b00| 74 2d 38 36 20 49 20 72 | 65 6d 6f 76 65 64 20 74 |t-86 I r|emoved t|
|00000b10| 68 65 20 26 65 6e 76 69 | 72 6f 6e 6d 65 6e 74 20 |he &envi|ronment |
|00000b20| 63 6f 64 65 20 73 6f 20 | 74 68 69 73 20 77 6f 75 |code so |this wou|
|00000b30| 6c 64 20 77 6f 72 6b 20 | 66 6f 72 20 4b 43 4c 0d |ld work |for KCL.|
|00000b40| 3b 3b 3b 20 5b 67 73 62 | 40 70 61 6c 6c 61 64 69 |;;; [gsb|@palladi|
|00000b50| 61 6e 5d 20 33 30 2d 61 | 70 72 2d 38 36 20 30 30 |an] 30-a|pr-86 00|
|00000b60| 3a 32 36 09 20 46 69 6c | 65 20 43 72 65 61 74 65 |:26. Fil|e Create|
|00000b70| 64 20 66 72 6f 6d 20 4e | 49 4c 27 73 20 4c 4f 4f |d from N|IL's LOO|
|00000b80| 50 20 76 65 72 73 69 6f | 6e 20 38 32 39 0d 3b 3b |P versio|n 829.;;|
|00000b90| 3b 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |;-------|--------|
|00000ba0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000bb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 3b 3b 3b 2d 2d 2d |--------|-.;;;---|
|00000be0| 2d 2d 2d 2d 20 45 6e 64 | 20 6f 66 20 6f 66 66 69 |---- End| of offi|
|00000bf0| 63 69 61 6c 20 63 68 61 | 6e 67 65 20 68 69 73 74 |cial cha|nge hist|
|00000c00| 6f 72 79 20 2d 2d 20 6e | 6f 74 65 20 6c 6f 63 61 |ory -- n|ote loca|
|00000c10| 6c 20 66 69 78 65 73 20 | 62 65 6c 6f 77 20 2d 2d |l fixes |below --|
|00000c20| 2d 2d 2d 2d 2d 0d 3b 3b | 3b 2d 2d 2d 2d 2d 2d 2d |-----.;;|;-------|
|00000c30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c70| 2d 0d 3b 3b 3b 0d 3b 3b | 3b 20 0d 3b 3b 3b 20 62 |-.;;;.;;|; .;;; b|
|00000c80| 69 6c 6c 40 63 61 6d 62 | 72 69 64 67 65 2e 61 70 |ill@camb|ridge.ap|
|00000c90| 70 6c 65 2e 63 6f 6d 20 | 30 36 2f 31 34 2f 39 31 |ple.com |06/14/91|
|00000ca0| 20 20 6c 6f 6f 70 2d 66 | 6f 72 2d 61 72 69 74 68 | loop-f|or-arith|
|00000cb0| 6d 65 74 69 63 20 6e 6f | 20 6c 6f 6e 67 65 72 20 |metic no| longer |
|00000cc0| 61 73 73 75 6d 65 73 20 | 66 69 78 6e 75 6d 0d 3b |assumes |fixnum.;|
|00000cd0| 3b 3b 20 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |;; -----|--------|
|00000ce0| 2d 20 32 2e 30 62 32 0d | 3b 3b 3b 20 62 69 6c 6c |- 2.0b2.|;;; bill|
|00000cf0| 40 63 61 6d 62 72 69 64 | 67 65 2e 61 70 70 6c 65 |@cambrid|ge.apple|
|00000d00| 2e 63 6f 6d 20 30 33 2f | 30 34 2f 39 31 20 20 73 |.com 03/|04/91 s|
|00000d10| 74 72 69 6e 67 2d 6c 65 | 6e 67 74 68 20 2d 3e 20 |tring-le|ngth -> |
|00000d20| 6c 65 6e 67 74 68 0d 3b | 3b 3b 2d 2d 2d 2d 2d 2d |length.;|;;------|
|00000d30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 20 32 2e 30 62 31 0d |--------|- 2.0b1.|
|00000d40| 3b 3b 3b 20 62 69 6c 6c | 40 63 61 6d 62 72 69 64 |;;; bill|@cambrid|
|00000d50| 67 65 2e 61 70 70 6c 65 | 2e 63 6f 6d 20 31 32 2f |ge.apple|.com 12/|
|00000d60| 31 30 2f 39 30 20 20 41 | 64 64 20 43 4c 3a 20 70 |10/90 A|dd CL: p|
|00000d70| 72 65 66 69 78 20 74 6f | 20 74 68 65 20 69 6e 69 |refix to| the ini|
|00000d80| 74 69 61 6c 20 64 65 66 | 70 61 63 6b 61 67 65 20 |tial def|package |
|00000d90| 26 20 69 6e 2d 70 61 63 | 6b 61 67 65 20 66 6f 72 |& in-pac|kage for|
|00000da0| 6d 73 0d 3b 3b 3b 20 62 | 69 6c 6c 40 63 61 6d 62 |ms.;;; b|ill@camb|
|00000db0| 72 69 64 67 65 2e 61 70 | 70 6c 65 2e 63 6f 6d 20 |ridge.ap|ple.com |
|00000dc0| 30 39 2f 32 38 2f 39 30 | 20 20 64 65 66 69 6e 65 |09/28/90| define|
|00000dd0| 2d 6c 6f 6f 70 2d 6d 61 | 63 72 6f 20 63 61 6c 6c |-loop-ma|cro call|
|00000de0| 20 67 6f 65 73 20 61 66 | 74 65 72 20 64 65 66 20 | goes af|ter def |
|00000df0| 6f 66 20 6c 6f 6f 70 2d | 74 72 61 6e 73 6c 61 74 |of loop-|translat|
|00000e00| 65 0d 3b 3b 3b 09 09 09 | 09 09 09 09 09 09 20 20 |e.;;;...|...... |
|00000e10| 20 74 6f 20 65 6c 69 6d | 69 6e 61 74 65 20 63 6f | to elim|inate co|
|00000e20| 6d 70 69 6c 65 72 20 77 | 61 72 6e 69 6e 67 73 2e |mpiler w|arnings.|
|00000e30| 0d 3b 3b 3b 20 62 69 6c | 6c 40 63 61 6d 62 72 69 |.;;; bil|l@cambri|
|00000e40| 64 67 65 2e 61 70 70 6c | 65 2e 63 6f 6d 20 30 39 |dge.appl|e.com 09|
|00000e50| 2f 30 37 2f 39 30 20 20 | 50 52 4f 56 49 44 45 20 |/07/90 |PROVIDE |
|00000e60| 67 6f 65 73 20 61 74 20 | 74 68 65 20 65 6e 64 20 |goes at |the end |
|00000e70| 6f 66 20 74 68 65 20 66 | 69 6c 65 21 0d 3b 3b 3b |of the f|ile!.;;;|
|00000e80| 0d 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |.;;;;;;;|;;;;;;;;|
|00000e90| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000ea0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000eb0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 3b 3b 3b 3b |;;;;;;;;|;;;;;;;;|
|00000ec0| 3b 3b 3b 3b 3b 3b 3b 3b | 3b 3b 3b 3b 0d 0d 3b 3b |;;;;;;;;|;;;;..;;|
|00000ed0| 3b 3b 20 50 61 63 6b 61 | 67 65 20 73 65 74 75 70 |;; Packa|ge setup|
|00000ee0| 0d 0d 0d 3b 3b 3b 54 68 | 65 20 66 6f 6c 6c 6f 77 |...;;;Th|e follow|
|00000ef0| 69 6e 67 20 73 79 6d 62 | 6f 6c 73 20 61 72 65 20 |ing symb|ols are |
|00000f00| 64 6f 63 75 6d 65 6e 74 | 65 64 20 61 73 20 62 65 |document|ed as be|
|00000f10| 69 6e 67 20 61 76 61 69 | 6c 61 62 6c 65 20 76 69 |ing avai|lable vi|
|00000f20| 61 20 53 49 3a 2e 09 20 | 46 61 72 20 62 65 0d 3b |a SI:.. |Far be.;|
|00000f30| 3b 3b 69 74 20 66 6f 72 | 20 75 73 20 74 6f 20 64 |;;it for| us to d|
|00000f40| 65 66 69 6e 65 20 61 20 | 70 61 63 6b 61 67 65 20 |efine a |package |
|00000f50| 62 79 20 74 68 61 74 20 | 6e 61 6d 65 2c 20 68 6f |by that |name, ho|
|00000f60| 77 65 76 65 72 20 77 65 | 20 63 61 6e 20 64 6f 20 |wever we| can do |
|00000f70| 74 68 65 0d 3b 3b 3b 66 | 6f 6c 6c 6f 77 69 6e 67 |the.;;;f|ollowing|
|00000f80| 2e 20 20 57 65 20 77 69 | 6c 6c 20 63 72 65 61 74 |. We wi|ll creat|
|00000f90| 65 20 61 20 22 6c 6f 6f | 70 2d 73 69 2d 6b 6c 75 |e a "loo|p-si-klu|
|00000fa0| 64 67 65 22 20 70 61 63 | 6b 61 67 65 20 28 73 6f |dge" pac|kage (so|
|00000fb0| 75 6e 64 73 20 6c 69 6b | 65 20 61 0d 3b 3b 3b 66 |unds lik|e a.;;;f|
|00000fc0| 61 69 72 6c 79 20 73 61 | 66 65 20 6e 61 6d 65 29 |airly sa|fe name)|
|00000fd0| 2c 20 69 6d 70 6f 72 74 | 20 74 68 65 20 53 49 3a |, import| the SI:|
|00000fe0| 20 73 79 6d 62 6f 6c 73 | 20 66 72 6f 6d 20 74 68 | symbols| from th|
|00000ff0| 65 72 65 20 69 6e 74 6f | 20 4c 4f 4f 50 2c 20 65 |ere into| LOOP, e|
|00001000| 78 70 6f 72 74 0d 3b 3b | 3b 74 68 65 6d 2c 20 64 |xport.;;|;them, d|
|00001010| 65 66 69 6e 65 20 74 68 | 61 74 20 70 65 6f 70 6c |efine th|at peopl|
|00001020| 65 20 28 75 73 65 2d 70 | 61 63 6b 61 67 65 20 27 |e (use-p|ackage '|
|00001030| 6c 6f 6f 70 29 2c 20 61 | 6e 64 20 69 66 20 74 68 |loop), a|nd if th|
|00001040| 65 79 20 77 61 6e 74 20 | 74 6f 0d 3b 3b 3b 6d 61 |ey want |to.;;;ma|
|00001050| 69 6e 74 61 69 6e 20 73 | 6f 75 72 63 65 20 63 6f |intain s|ource co|
|00001060| 6d 70 61 74 69 62 69 6c | 69 74 79 20 74 68 65 79 |mpatibil|ity they|
|00001070| 20 63 61 6e 20 61 64 64 | 20 74 68 65 20 53 49 20 | can add| the SI |
|00001080| 6e 69 63 6b 6e 61 6d 65 | 20 74 68 65 0d 3b 3b 3b |nickname| the.;;;|
|00001090| 6c 6f 6f 70 2d 73 69 2d | 6b 6c 75 64 67 65 20 70 |loop-si-|kludge p|
|000010a0| 61 63 6b 61 67 65 2e 09 | 48 6f 77 27 73 20 74 68 |ackage..|How's th|
|000010b0| 61 74 3f 0d 0d 3b 28 69 | 6e 2d 70 61 63 6b 61 67 |at?..;(i|n-packag|
|000010c0| 65 20 27 6c 6f 6f 70 2d | 73 69 2d 6b 6c 75 64 67 |e 'loop-|si-kludg|
|000010d0| 65 29 0d 0d 3b 28 65 78 | 70 6f 72 74 20 27 28 6c |e)..;(ex|port '(l|
|000010e0| 6f 6f 70 2d 74 65 71 75 | 61 6c 20 6c 6f 6f 70 2d |oop-tequ|al loop-|
|000010f0| 74 61 73 73 6f 63 20 6c | 6f 6f 70 2d 74 6d 65 6d |tassoc l|oop-tmem|
|00001100| 62 65 72 20 6c 6f 6f 70 | 2d 75 73 65 2d 73 79 73 |ber loop|-use-sys|
|00001110| 74 65 6d 2d 64 65 73 74 | 72 75 63 74 75 72 69 6e |tem-dest|ructurin|
|00001120| 67 3f 0d 3b 09 09 20 20 | 6c 6f 6f 70 2d 6e 61 6d |g?.;.. |loop-nam|
|00001130| 65 64 2d 76 61 72 69 61 | 62 6c 65 20 6c 6f 6f 70 |ed-varia|ble loop|
|00001140| 2d 73 69 6d 70 6c 65 70 | 20 6c 6f 6f 70 2d 73 69 |-simplep| loop-si|
|00001150| 6d 70 6c 65 70 2d 31 0d | 3b 09 09 20 20 6c 6f 6f |mplep-1.|;.. loo|
|00001160| 70 2d 73 65 71 75 65 6e | 63 65 72 20 6c 6f 6f 70 |p-sequen|cer loop|
|00001170| 2d 73 65 71 75 65 6e 63 | 65 2d 65 6c 65 6d 65 6e |-sequenc|e-elemen|
|00001180| 74 73 2d 70 61 74 68 29 | 29 0d 0d 3b 28 63 6c 3a |ts-path)|)..;(cl:|
|00001190| 64 65 66 70 61 63 6b 61 | 67 65 20 6c 6f 6f 70 20 |defpacka|ge loop |
|000011a0| 28 3a 75 73 65 20 63 6f | 6d 6d 6f 6e 2d 6c 69 73 |(:use co|mmon-lis|
|000011b0| 70 29 29 0d 3b 28 63 6c | 3a 69 6e 2d 70 61 63 6b |p)).;(cl|:in-pack|
|000011c0| 61 67 65 20 3a 6c 6f 6f | 70 29 0d 28 65 76 61 6c |age :loo|p).(eval|
|000011d0| 2d 77 68 65 6e 20 28 3a | 6c 6f 61 64 2d 74 6f 70 |-when (:|load-top|
|000011e0| 6c 65 76 65 6c 20 3a 63 | 6f 6d 70 69 6c 65 2d 74 |level :c|ompile-t|
|000011f0| 6f 70 6c 65 76 65 6c 20 | 3a 65 78 65 63 75 74 65 |oplevel |:execute|
|00001200| 29 0d 0d 28 70 72 6f 76 | 69 64 65 20 3a 6c 6f 6f |)..(prov|ide :loo|
|00001210| 70 29 0d 28 69 6e 2d 70 | 61 63 6b 61 67 65 20 3a |p).(in-p|ackage :|
|00001220| 6c 6f 6f 70 29 09 09 3b | 20 6e 6f 20 64 65 66 70 |loop)..;| no defp|
|00001230| 61 63 6b 61 67 65 20 79 | 65 74 20 20 52 47 43 0d |ackage y|et RGC.|
|00001240| 29 0d 0d 3b 28 75 73 65 | 2d 70 61 63 6b 61 67 65 |)..;(use|-package|
|00001250| 20 27 28 6c 6f 6f 70 2d | 73 69 2d 6b 6c 75 64 67 | '(loop-|si-kludg|
|00001260| 65 29 29 0d 0d 3b 73 68 | 61 64 6f 77 3f 0d 0d 3b |e))..;sh|adow?..;|
|00001270| 28 73 68 61 64 6f 77 20 | 27 28 6c 6f 6f 70 20 6c |(shadow |'(loop l|
|00001280| 6f 6f 70 2d 66 69 6e 69 | 73 68 20 64 65 66 69 6e |oop-fini|sh defin|
|00001290| 65 2d 6c 6f 6f 70 2d 6d | 61 63 72 6f 20 64 65 66 |e-loop-m|acro def|
|000012a0| 69 6e 65 2d 6c 6f 6f 70 | 2d 70 61 74 68 0d 3b 09 |ine-loop|-path.;.|
|000012b0| 09 09 20 20 20 64 65 66 | 69 6e 65 2d 6c 6f 6f 70 |.. def|ine-loop|
|000012c0| 2d 73 65 71 75 65 6e 63 | 65 2d 70 61 74 68 29 29 |-sequenc|e-path))|
|000012d0| 0d 3b 20 0d 3b 28 73 68 | 61 64 6f 77 20 27 28 6c |.; .;(sh|adow '(l|
|000012e0| 6f 6f 70 2d 74 65 71 75 | 61 6c 20 6c 6f 6f 70 2d |oop-tequ|al loop-|
|000012f0| 74 61 73 73 6f 63 20 6c | 6f 6f 70 2d 74 6d 65 6d |tassoc l|oop-tmem|
|00001300| 62 65 72 20 6c 6f 6f 70 | 2d 75 73 65 2d 73 79 73 |ber loop|-use-sys|
|00001310| 74 65 6d 2d 64 65 73 74 | 72 75 63 74 75 72 69 6e |tem-dest|ructurin|
|00001320| 67 3f 0d 3b 09 09 20 20 | 6c 6f 6f 70 2d 6e 61 6d |g?.;.. |loop-nam|
|00001330| 65 64 2d 76 61 72 69 61 | 62 6c 65 20 6c 6f 6f 70 |ed-varia|ble loop|
|00001340| 2d 73 69 6d 70 6c 65 70 | 20 6c 6f 6f 70 2d 73 69 |-simplep| loop-si|
|00001350| 6d 70 6c 65 70 2d 31 0d | 3b 09 09 20 20 6c 6f 6f |mplep-1.|;.. loo|
|00001360| 70 2d 73 65 71 75 65 6e | 63 65 72 20 6c 6f 6f 70 |p-sequen|cer loop|
|00001370| 2d 73 65 71 75 65 6e 63 | 65 2d 65 6c 65 6d 65 6e |-sequenc|e-elemen|
|00001380| 74 73 2d 70 61 74 68 29 | 29 0d 0d 3b 28 73 68 61 |ts-path)|)..;(sha|
|00001390| 64 6f 77 20 27 28 6c 6f | 6f 70 3a 6c 69 73 70 29 |dow '(lo|op:lisp)|
|000013a0| 29 20 77 72 6f 6e 67 21 | 20 41 48 52 20 68 6f 77 |) wrong!| AHR how|
|000013b0| 61 72 64 0d 28 73 68 61 | 64 6f 77 20 27 28 6c 6f |ard.(sha|dow '(lo|
|000013c0| 6f 70 29 20 27 63 6f 6d | 6d 6f 6e 2d 6c 69 73 70 |op) 'com|mon-lisp|
|000013d0| 29 20 20 3b 20 4e 6f 20 | 73 68 61 64 6f 77 20 66 |) ; No |shadow f|
|000013e0| 75 6e 63 74 69 6f 6e 73 | 20 79 65 74 20 2d 2d 20 |unctions| yet -- |
|000013f0| 52 47 43 0d 0d 0d 28 65 | 78 70 6f 72 74 20 27 28 |RGC...(e|xport '(|
|00001400| 6c 6f 6f 70 20 6c 6f 6f | 70 2d 66 69 6e 69 73 68 |loop loo|p-finish|
|00001410| 20 64 65 66 69 6e 65 2d | 6c 6f 6f 70 2d 6d 61 63 | define-|loop-mac|
|00001420| 72 6f 20 64 65 66 69 6e | 65 2d 6c 6f 6f 70 2d 70 |ro defin|e-loop-p|
|00001430| 61 74 68 0d 09 09 09 20 | 20 20 64 65 66 69 6e 65 |ath.... | define|
|00001440| 2d 6c 6f 6f 70 2d 73 65 | 71 75 65 6e 63 65 2d 70 |-loop-se|quence-p|
|00001450| 61 74 68 29 29 0d 0d 28 | 65 78 70 6f 72 74 20 27 |ath))..(|export '|
|00001460| 28 6c 6f 6f 70 2d 74 65 | 71 75 61 6c 20 6c 6f 6f |(loop-te|qual loo|
|00001470| 70 2d 74 61 73 73 6f 63 | 20 6c 6f 6f 70 2d 74 6d |p-tassoc| loop-tm|
|00001480| 65 6d 62 65 72 20 6c 6f | 6f 70 2d 75 73 65 2d 73 |ember lo|op-use-s|
|00001490| 79 73 74 65 6d 2d 64 65 | 73 74 72 75 63 74 75 72 |ystem-de|structur|
|000014a0| 69 6e 67 3f 0d 09 09 20 | 20 6c 6f 6f 70 2d 6e 61 |ing?... | loop-na|
|000014b0| 6d 65 64 2d 76 61 72 69 | 61 62 6c 65 20 6c 6f 6f |med-vari|able loo|
|000014c0| 70 2d 73 69 6d 70 6c 65 | 70 20 6c 6f 6f 70 2d 73 |p-simple|p loop-s|
|000014d0| 69 6d 70 6c 65 70 2d 31 | 0d 09 09 20 20 6c 6f 6f |implep-1|... loo|
|000014e0| 70 2d 73 65 71 75 65 6e | 63 65 72 20 6c 6f 6f 70 |p-sequen|cer loop|
|000014f0| 2d 73 65 71 75 65 6e 63 | 65 2d 65 6c 65 6d 65 6e |-sequenc|e-elemen|
|00001500| 74 73 2d 70 61 74 68 29 | 29 0d 0d 3b 72 65 71 75 |ts-path)|)..;requ|
|00001510| 69 72 65 3f 0d 0d 0d 3b | 3b 3b 3b 20 4d 61 63 72 |ire?...;|;;; Macr|
|00001520| 6f 20 45 6e 76 69 72 6f | 6e 6d 65 6e 74 20 53 65 |o Enviro|nment Se|
|00001530| 74 75 70 0d 0d 3b 20 48 | 61 63 6b 20 75 70 20 74 |tup..; H|ack up t|
|00001540| 68 65 20 73 74 75 66 66 | 20 66 6f 72 20 64 61 74 |he stuff| for dat|
|00001550| 61 2d 74 79 70 65 73 2e | 09 20 44 41 54 41 2d 54 |a-types.|. DATA-T|
|00001560| 59 50 45 3f 20 77 69 6c | 6c 20 61 6c 77 61 79 73 |YPE? wil|l always|
|00001570| 20 62 65 20 61 20 6d 61 | 63 72 6f 0d 3b 20 73 6f | be a ma|cro.; so|
|00001580| 20 74 68 61 74 20 69 74 | 20 77 69 6c 6c 20 6e 6f | that it| will no|
|00001590| 74 20 72 65 71 75 69 72 | 65 20 74 68 65 20 64 61 |t requir|e the da|
|000015a0| 74 61 2d 74 79 70 65 20 | 70 61 63 6b 61 67 65 20 |ta-type |package |
|000015b0| 61 74 20 72 75 6e 20 74 | 69 6d 65 20 69 66 0d 3b |at run t|ime if.;|
|000015c0| 20 61 6c 6c 20 75 73 65 | 73 20 6f 66 20 74 68 65 | all use|s of the|
|000015d0| 20 6f 74 68 65 72 20 72 | 6f 75 74 69 6e 65 73 20 | other r|outines |
|000015e0| 61 72 65 20 63 6f 6e 64 | 69 74 69 6f 6e 61 6c 69 |are cond|itionali|
|000015f0| 7a 65 64 20 75 70 6f 6e | 20 74 68 61 74 20 76 61 |zed upon| that va|
|00001600| 6c 75 65 2e 0d 28 65 76 | 61 6c 2d 77 68 65 6e 20 |lue..(ev|al-when |
|00001610| 28 65 76 61 6c 20 63 6f | 6d 70 69 6c 65 29 0d 20 |(eval co|mpile). |
|00001620| 20 3b 20 43 72 6f 63 6b | 20 66 6f 72 20 44 41 54 | ; Crock| for DAT|
|00001630| 41 2d 54 59 50 45 3f 20 | 64 65 72 69 76 65 73 20 |A-TYPE? |derives |
|00001640| 66 72 6f 6d 20 44 54 44 | 43 4c 2e 20 20 57 65 20 |from DTD|CL. We |
|00001650| 6a 75 73 74 20 63 6f 70 | 79 20 69 74 20 72 61 74 |just cop|y it rat|
|00001660| 68 65 72 0d 20 20 3b 20 | 74 68 61 6e 20 6c 6f 61 |her. ; |than loa|
|00001670| 64 20 69 74 20 69 6e 2c | 20 77 68 69 63 68 20 72 |d it in,| which r|
|00001680| 65 71 75 69 72 65 73 20 | 6b 6e 6f 77 69 6e 67 20 |equires |knowing |
|00001690| 77 68 65 72 65 20 69 74 | 20 63 6f 6d 65 73 20 66 |where it| comes f|
|000016a0| 72 6f 6d 20 28 73 69 67 | 68 29 2e 0d 20 20 3b 20 |rom (sig|h).. ; |
|000016b0| 0d 20 20 28 64 65 66 6d | 61 63 72 6f 20 64 61 74 |. (defm|acro dat|
|000016c0| 61 2d 74 79 70 65 3f 20 | 28 66 72 6f 62 29 0d 09 |a-type? |(frob)..|
|000016d0| 28 6c 65 74 20 28 28 66 | 6f 6f 20 28 67 65 6e 73 |(let ((f|oo (gens|
|000016e0| 79 6d 29 29 29 0d 09 20 | 20 60 28 28 6c 61 6d 62 |ym))).. | `((lamb|
|000016f0| 64 61 20 28 2c 66 6f 6f | 29 0d 09 09 20 20 3b 3b |da (,foo|)... ;;|
|00001700| 20 4e 49 4c 20 63 72 6f | 61 6b 73 20 69 66 20 6e | NIL cro|aks if n|
|00001710| 69 6c 20 67 69 76 65 6e | 20 74 6f 20 47 45 54 2e |il given| to GET.|
|00001720| 2e 2e 09 4e 6f 20 69 74 | 20 64 6f 65 73 6e 27 74 |...No it| doesn't|
|00001730| 20 61 6e 79 20 6d 6f 72 | 65 21 09 20 42 75 74 3a | any mor|e!. But:|
|00001740| 0d 09 09 20 20 3b 3b 20 | 45 76 65 72 79 20 4c 69 |... ;; |Every Li|
|00001750| 73 70 20 73 68 6f 75 6c | 64 20 28 62 75 74 20 64 |sp shoul|d (but d|
|00001760| 6f 65 73 6e 27 74 29 20 | 63 72 6f 61 6b 20 69 66 |oesn't) |croak if|
|00001770| 20 72 61 6e 64 6f 6d 6e | 65 73 73 20 67 69 76 65 | randomn|ess give|
|00001780| 6e 20 74 6f 20 47 45 54 | 0d 09 09 20 20 3b 3b 20 |n to GET|... ;; |
|00001790| 4c 49 53 50 4d 20 63 72 | 6f 61 6b 73 20 28 6f 66 |LISPM cr|oaks (of|
|000017a0| 20 63 6f 75 72 73 65 29 | 20 69 66 20 72 61 6e 64 | course)| if rand|
|000017b0| 6f 6d 6e 65 73 73 20 67 | 69 76 65 6e 20 74 6f 20 |omness g|iven to |
|000017c0| 67 65 74 2d 70 6e 61 6d | 65 0d 09 09 20 20 28 61 |get-pnam|e... (a|
|000017d0| 6e 64 20 28 73 79 6d 62 | 6f 6c 70 20 2c 66 6f 6f |nd (symb|olp ,foo|
|000017e0| 29 0d 09 09 09 20 20 20 | 28 6f 72 20 28 67 65 74 |).... |(or (get|
|000017f0| 20 2c 66 6f 6f 20 27 3a | 64 61 74 61 2d 74 79 70 | ,foo ':|data-typ|
|00001800| 65 29 0d 09 09 09 09 20 | 20 20 28 61 6e 64 20 28 |e)..... | (and (|
|00001810| 73 65 74 71 20 2c 66 6f | 6f 20 28 66 69 6e 64 2d |setq ,fo|o (find-|
|00001820| 73 79 6d 62 6f 6c 20 28 | 73 79 6d 62 6f 6c 2d 6e |symbol (|symbol-n|
|00001830| 61 6d 65 20 2c 66 6f 6f | 29 20 28 66 69 6e 64 2d |ame ,foo|) (find-|
|00001840| 70 61 63 6b 61 67 65 20 | 27 6b 65 79 77 6f 72 64 |package |'keyword|
|00001850| 29 29 29 0d 09 09 09 09 | 09 09 28 67 65 74 20 2c |))).....|..(get ,|
|00001860| 66 6f 6f 20 27 3a 64 61 | 74 61 2d 74 79 70 65 29 |foo ':da|ta-type)|
|00001870| 29 29 29 29 0d 09 09 2c | 66 72 6f 62 29 29 29 0d |))))...,|frob))).|
|00001880| 29 0d 0d 3b 3b 3b 20 54 | 68 65 20 75 73 65 73 20 |)..;;; T|he uses |
|00001890| 6f 66 20 74 68 69 73 20 | 6d 61 63 72 6f 20 61 72 |of this |macro ar|
|000018a0| 65 20 72 65 74 61 69 6e | 65 64 20 69 6e 20 74 68 |e retain|ed in th|
|000018b0| 65 20 43 4c 20 76 65 72 | 73 69 6f 6e 20 6f 66 20 |e CL ver|sion of |
|000018c0| 6c 6f 6f 70 2c 20 69 6e | 20 63 61 73 65 20 74 68 |loop, in| case th|
|000018d0| 65 79 20 61 72 65 0d 3b | 3b 3b 20 6e 65 65 64 65 |ey are.;|;; neede|
|000018e0| 64 20 69 6e 20 61 20 70 | 61 72 74 69 63 75 6c 61 |d in a p|articula|
|000018f0| 72 20 69 6d 70 6c 65 6d | 65 6e 74 61 74 69 6f 6e |r implem|entation|
|00001900| 2e 09 4f 72 69 67 69 6e | 61 6c 6c 79 20 64 61 74 |..Origin|ally dat|
|00001910| 69 6e 67 20 66 72 6f 6d | 20 74 68 65 20 75 73 65 |ing from| the use|
|00001920| 20 6f 66 20 74 68 65 0d | 3b 3b 3b 20 5a 65 74 61 | of the.|;;; Zeta|
|00001930| 6c 69 73 70 20 43 4f 50 | 59 4c 49 53 54 2a 20 66 |lisp COP|YLIST* f|
|00001940| 75 6e 63 74 69 6f 6e 2c | 20 74 68 69 73 20 69 73 |unction,| this is|
|00001950| 20 75 73 65 64 20 69 6e | 20 73 69 74 75 61 74 69 | used in| situati|
|00001960| 6f 6e 73 20 77 68 65 72 | 65 2c 20 77 65 72 65 20 |ons wher|e, were |
|00001970| 63 64 72 2d 63 6f 64 69 | 6e 67 0d 3b 3b 3b 20 69 |cdr-codi|ng.;;; i|
|00001980| 6e 20 75 73 65 2c 20 68 | 61 76 69 6e 67 20 63 64 |n use, h|aving cd|
|00001990| 72 2d 4e 49 4c 20 61 74 | 20 74 68 65 20 65 6e 64 |r-NIL at| the end|
|000019a0| 20 6f 66 20 74 68 65 20 | 6c 69 73 74 20 6d 69 67 | of the |list mig|
|000019b0| 68 74 20 62 65 20 73 75 | 62 6f 70 74 69 6d 61 6c |ht be su|boptimal|
|000019c0| 20 62 65 63 61 75 73 65 | 20 74 68 65 0d 3b 3b 3b | because| the.;;;|
|000019d0| 20 65 6e 64 20 6f 66 20 | 74 68 65 20 6c 69 73 74 | end of |the list|
|000019e0| 20 77 69 6c 6c 20 70 72 | 6f 62 61 62 6c 79 20 62 | will pr|obably b|
|000019f0| 65 20 52 50 4c 41 43 44 | 65 64 20 61 6e 64 20 73 |e RPLACD|ed and s|
|00001a00| 6f 20 63 64 72 2d 6e 6f | 72 6d 61 6c 20 73 68 6f |o cdr-no|rmal sho|
|00001a10| 75 6c 64 20 62 65 20 75 | 73 65 64 20 69 6e 73 74 |uld be u|sed inst|
|00001a20| 65 61 64 2e 0d 28 64 65 | 66 6d 61 63 72 6f 20 6c |ead..(de|fmacro l|
|00001a30| 6f 6f 70 2d 63 6f 70 79 | 6c 69 73 74 2a 20 28 6c |oop-copy|list* (l|
|00001a40| 29 0d 20 20 60 28 63 6f | 70 79 2d 6c 69 73 74 20 |). `(co|py-list |
|00001a50| 2c 6c 29 29 0d 0d 0d 3b | 3b 3b 3b 20 52 61 6e 64 |,l))...;|;;; Rand|
|00001a60| 6f 6d 20 4d 61 63 72 6f | 73 0d 0d 28 64 65 66 6d |om Macro|s..(defm|
|00001a70| 61 63 72 6f 20 6c 6f 6f | 70 2d 73 69 6d 70 6c 65 |acro loo|p-simple|
|00001a80| 2d 65 72 72 6f 72 20 28 | 75 6e 71 75 6f 74 65 64 |-error (|unquoted|
|00001a90| 2d 6d 65 73 73 61 67 65 | 20 26 6f 70 74 69 6f 6e |-message| &option|
|00001aa0| 61 6c 20 28 64 61 74 75 | 6d 20 6e 69 6c 20 64 61 |al (datu|m nil da|
|00001ab0| 74 75 6d 70 29 29 0d 20 | 20 60 28 65 72 72 6f 72 |tump)). | `(error|
|00001ac0| 20 2c 28 69 66 20 64 61 | 74 75 6d 70 20 22 4c 4f | ,(if da|tump "LO|
|00001ad0| 4f 50 3a 20 20 7e 53 20 | 7e 41 22 20 22 4c 4f 4f |OP: ~S |~A" "LOO|
|00001ae0| 50 3a 20 20 7e 41 22 29 | 0d 09 09 20 20 27 2c 75 |P: ~A")|... ',u|
|00001af0| 6e 71 75 6f 74 65 64 2d | 6d 65 73 73 61 67 65 20 |nquoted-|message |
|00001b00| 2c 40 28 61 6e 64 20 64 | 61 74 75 6d 70 20 28 6c |,@(and d|atump (l|
|00001b10| 69 73 74 20 64 61 74 75 | 6d 29 29 29 29 0d 0d 0d |ist datu|m))))...|
|00001b20| 28 64 65 66 6d 61 63 72 | 6f 20 6c 6f 6f 70 2d 77 |(defmacr|o loop-w|
|00001b30| 61 72 6e 20 28 75 6e 71 | 75 6f 74 65 64 2d 6d 65 |arn (unq|uoted-me|
|00001b40| 73 73 61 67 65 20 26 6f | 70 74 69 6f 6e 61 6c 20 |ssage &o|ptional |
|00001b50| 28 64 61 74 75 6d 20 6e | 69 6c 20 64 61 74 75 6d |(datum n|il datum|
|00001b60| 70 29 29 0d 20 20 28 69 | 66 20 64 61 74 75 6d 70 |p)). (i|f datump|
|00001b70| 0d 09 20 20 60 28 77 61 | 72 6e 20 2c 28 63 6f 6e |.. `(wa|rn ,(con|
|00001b80| 63 61 74 65 6e 61 74 65 | 20 27 73 74 72 69 6e 67 |catenate| 'string|
|00001b90| 20 22 4c 4f 4f 50 3a 20 | 22 20 75 6e 71 75 6f 74 | "LOOP: |" unquot|
|00001ba0| 65 64 2d 6d 65 73 73 61 | 67 65 20 22 20 2d 2d 20 |ed-messa|ge " -- |
|00001bb0| 7e 7b 7e 53 7e 5e 20 7e | 7d 22 29 0d 09 09 09 20 |~{~S~^ ~|}").... |
|00001bc0| 2c 64 61 74 75 6d 29 0d | 09 20 20 60 28 77 61 72 |,datum).|. `(war|
|00001bd0| 6e 20 27 2c 28 63 6f 6e | 63 61 74 65 6e 61 74 65 |n ',(con|catenate|
|00001be0| 20 27 73 74 72 69 6e 67 | 20 22 4c 4f 4f 50 3a 20 | 'string| "LOOP: |
|00001bf0| 22 20 75 6e 71 75 6f 74 | 65 64 2d 6d 65 73 73 61 |" unquot|ed-messa|
|00001c00| 67 65 29 29 29 29 0d 0d | 0d 3b 3b 20 28 64 65 66 |ge))))..|.;; (def|
|00001c10| 6d 61 63 72 6f 20 6c 6f | 6f 70 2d 70 6f 70 2d 73 |macro lo|op-pop-s|
|00001c20| 6f 75 72 63 65 20 28 29 | 20 27 28 70 6f 70 20 6c |ource ()| '(pop l|
|00001c30| 6f 6f 70 2d 73 6f 75 72 | 63 65 2d 63 6f 64 65 29 |oop-sour|ce-code)|
|00001c40| 29 09 3b 3b 20 52 47 43 | 0d 0d 28 64 65 66 75 6e |).;; RGC|..(defun|
|00001c50| 20 6c 6f 6f 70 2d 70 6f | 70 2d 73 6f 75 72 63 65 | loop-po|p-source|
|00001c60| 20 28 29 0d 20 20 28 69 | 66 20 6c 6f 6f 70 2d 73 | (). (i|f loop-s|
|00001c70| 6f 75 72 63 65 2d 63 6f | 64 65 0d 20 20 20 20 20 |ource-co|de. |
|00001c80| 20 28 70 6f 70 20 6c 6f | 6f 70 2d 73 6f 75 72 63 | (pop lo|op-sourc|
|00001c90| 65 2d 63 6f 64 65 29 0d | 20 20 20 20 20 20 28 65 |e-code).| (e|
|00001ca0| 72 72 6f 72 20 22 4c 4f | 4f 50 20 73 6f 75 72 63 |rror "LO|OP sourc|
|00001cb0| 65 20 63 6f 64 65 20 72 | 61 6e 20 6f 75 74 20 77 |e code r|an out w|
|00001cc0| 68 65 6e 20 61 6e 6f 74 | 68 65 72 20 74 6f 6b 65 |hen anot|her toke|
|00001cd0| 6e 20 77 61 73 20 65 78 | 70 65 63 74 65 64 2e 22 |n was ex|pected."|
|00001ce0| 29 29 29 0d 0d 0d 28 64 | 65 66 6d 61 63 72 6f 20 |)))...(d|efmacro |
|00001cf0| 6c 6f 6f 70 2d 67 65 6e | 74 65 6d 70 20 28 26 6f |loop-gen|temp (&o|
|00001d00| 70 74 69 6f 6e 61 6c 20 | 28 70 72 65 66 20 27 27 |ptional |(pref ''|
|00001d10| 6c 6f 6f 70 76 61 72 2d | 29 29 0d 20 20 60 28 67 |loopvar-|)). `(g|
|00001d20| 65 6e 74 65 6d 70 20 28 | 73 79 6d 62 6f 6c 2d 6e |entemp (|symbol-n|
|00001d30| 61 6d 65 20 2c 70 72 65 | 66 29 29 29 0d 0d 0d 3b |ame ,pre|f)))...;|
|00001d40| 3b 3b 3b 20 53 65 74 71 | 20 48 61 63 6b 65 72 79 |;;; Setq| Hackery|
|00001d50| 0d 0d 3b 20 4e 6f 74 65 | 3a 09 20 4c 4f 4f 50 2d |..; Note|:. LOOP-|
|00001d60| 4d 41 4b 45 2d 50 53 45 | 54 51 20 69 73 20 4e 4f |MAKE-PSE|TQ is NO|
|00001d70| 54 20 66 6c 75 73 68 61 | 62 6c 65 20 64 65 70 65 |T flusha|ble depe|
|00001d80| 6e 64 69 6e 67 20 6f 6e | 20 74 68 65 20 65 78 69 |nding on| the exi|
|00001d90| 73 74 65 6e 63 65 0d 3b | 20 6f 66 20 50 53 45 54 |stence.;| of PSET|
|00001da0| 51 2c 20 75 6e 6c 65 73 | 73 20 50 53 45 54 51 20 |Q, unles|s PSETQ |
|00001db0| 68 61 6e 64 6c 65 73 20 | 64 65 73 74 72 75 63 74 |handles |destruct|
|00001dc0| 75 72 69 6e 67 2e 09 20 | 45 76 65 6e 20 74 68 65 |uring.. |Even the|
|00001dd0| 6e 20 69 74 20 69 73 0d | 3b 20 70 72 65 66 65 72 |n it is.|; prefer|
|00001de0| 61 62 6c 65 20 66 6f 72 | 20 74 68 65 20 63 6f 64 |able for| the cod|
|00001df0| 65 20 4c 4f 4f 50 20 70 | 72 6f 64 75 63 65 73 20 |e LOOP p|roduces |
|00001e00| 74 6f 20 6e 6f 74 20 63 | 6f 6e 74 61 69 6e 20 69 |to not c|ontain i|
|00001e10| 6e 74 65 72 6d 65 64 69 | 61 74 65 0d 3b 20 6d 61 |ntermedi|ate.; ma|
|00001e20| 63 72 6f 73 2c 20 65 73 | 70 65 63 69 61 6c 6c 79 |cros, es|pecially|
|00001e30| 20 69 6e 20 74 68 65 20 | 50 44 50 31 30 20 76 65 | in the |PDP10 ve|
|00001e40| 72 73 69 6f 6e 2e 0d 0d | 28 64 65 66 75 6e 20 6c |rsion...|(defun l|
|00001e50| 6f 6f 70 2d 6d 61 6b 65 | 2d 70 73 65 74 71 20 28 |oop-make|-psetq (|
|00001e60| 66 72 6f 62 73 29 0d 09 | 28 61 6e 64 20 66 72 6f |frobs)..|(and fro|
|00001e70| 62 73 0d 09 09 20 28 6c | 6f 6f 70 2d 6d 61 6b 65 |bs... (l|oop-make|
|00001e80| 2d 73 65 74 71 0d 09 09 | 09 28 6c 69 73 74 20 28 |-setq...|.(list (|
|00001e90| 63 61 72 20 66 72 6f 62 | 73 29 0d 09 09 09 09 20 |car frob|s)..... |
|00001ea0| 20 28 69 66 20 28 6e 75 | 6c 6c 20 28 63 64 64 72 | (if (nu|ll (cddr|
|00001eb0| 20 66 72 6f 62 73 29 29 | 20 28 63 61 64 72 20 66 | frobs))| (cadr f|
|00001ec0| 72 6f 62 73 29 0d 09 09 | 09 09 09 20 20 60 28 70 |robs)...|... `(p|
|00001ed0| 72 6f 67 31 20 2c 28 63 | 61 64 72 20 66 72 6f 62 |rog1 ,(c|adr frob|
|00001ee0| 73 29 0d 09 09 09 09 09 | 09 09 20 20 2c 28 6c 6f |s)......|.. ,(lo|
|00001ef0| 6f 70 2d 6d 61 6b 65 2d | 70 73 65 74 71 20 28 63 |op-make-|psetq (c|
|00001f00| 64 64 72 20 66 72 6f 62 | 73 29 29 29 29 29 29 29 |ddr frob|s)))))))|
|00001f10| 29 0d 0d 0d 28 64 65 66 | 76 61 72 20 6c 6f 6f 70 |)...(def|var loop|
|00001f20| 2d 75 73 65 2d 73 79 73 | 74 65 6d 2d 64 65 73 74 |-use-sys|tem-dest|
|00001f30| 72 75 63 74 75 72 69 6e | 67 3f 0d 09 6e 69 6c 29 |ructurin|g?..nil)|
|00001f40| 0d 0d 28 64 65 66 76 61 | 72 20 6c 6f 6f 70 2d 64 |..(defva|r loop-d|
|00001f50| 65 73 65 74 71 2d 74 65 | 6d 70 6f 72 61 72 79 29 |esetq-te|mporary)|
|00001f60| 0d 0d 3b 20 44 6f 20 77 | 65 20 77 61 6e 74 20 74 |..; Do w|e want t|
|00001f70| 68 69 73 3f 3f 3f 20 20 | 49 74 20 69 73 2c 20 61 |his??? |It is, a|
|00001f80| 64 6d 69 74 74 65 64 6c | 79 2c 20 75 73 65 66 75 |dmittedl|y, usefu|
|00001f90| 6c 2e 2e 2e 0d 3b 28 64 | 65 66 6d 61 63 72 6f 20 |l....;(d|efmacro |
|00001fa0| 6c 6f 6f 70 2d 64 65 73 | 65 74 71 20 28 26 72 65 |loop-des|etq (&re|
|00001fb0| 73 74 20 78 29 0d 3b 20 | 20 28 6c 65 74 20 28 28 |st x).; | (let ((|
|00001fc0| 6c 6f 6f 70 2d 64 65 73 | 65 74 71 2d 74 65 6d 70 |loop-des|etq-temp|
|00001fd0| 6f 72 61 72 79 20 6e 69 | 6c 29 29 0d 3b 09 20 20 |orary ni|l)).;. |
|00001fe0| 28 6c 65 74 20 28 28 73 | 65 74 71 2d 66 6f 72 6d |(let ((s|etq-form|
|00001ff0| 20 28 6c 6f 6f 70 2d 6d | 61 6b 65 2d 64 65 73 65 | (loop-m|ake-dese|
|00002000| 74 71 20 78 29 29 29 0d | 3b 09 09 28 69 66 20 6c |tq x))).|;..(if l|
|00002010| 6f 6f 70 2d 64 65 73 65 | 74 71 2d 74 65 6d 70 6f |oop-dese|tq-tempo|
|00002020| 72 61 72 79 0d 3b 09 09 | 09 60 28 28 6c 61 6d 62 |rary.;..|.`((lamb|
|00002030| 64 61 20 28 2c 6c 6f 6f | 70 2d 64 65 73 65 74 71 |da (,loo|p-desetq|
|00002040| 2d 74 65 6d 70 6f 72 61 | 72 79 29 20 2c 73 65 74 |-tempora|ry) ,set|
|00002050| 71 2d 66 6f 72 6d 29 20 | 6e 69 6c 29 0d 3b 09 09 |q-form) |nil).;..|
|00002060| 09 73 65 74 71 2d 66 6f | 72 6d 29 29 29 29 0d 0d |.setq-fo|rm))))..|
|00002070| 0d 28 64 65 66 75 6e 20 | 6c 6f 6f 70 2d 6d 61 6b |.(defun |loop-mak|
|00002080| 65 2d 64 65 73 65 74 71 | 20 28 78 29 0d 20 20 20 |e-desetq| (x). |
|00002090| 28 69 66 20 6c 6f 6f 70 | 2d 75 73 65 2d 73 79 73 |(if loop|-use-sys|
|000020a0| 74 65 6d 2d 64 65 73 74 | 72 75 63 74 75 72 69 6e |tem-dest|ructurin|
|000020b0| 67 3f 0d 09 20 20 20 28 | 63 6f 6e 73 20 28 64 6f |g?.. (|cons (do|
|000020c0| 20 28 28 6c 20 78 20 28 | 63 64 64 72 20 6c 29 29 | ((l x (|cddr l))|
|000020d0| 29 20 28 28 6e 75 6c 6c | 20 6c 29 20 27 73 65 74 |) ((null| l) 'set|
|000020e0| 71 29 0d 09 09 09 20 20 | 20 28 6f 72 20 28 61 6e |q).... | (or (an|
|000020f0| 64 20 28 6e 6f 74 20 28 | 6e 75 6c 6c 20 28 63 61 |d (not (|null (ca|
|00002100| 72 20 6c 29 29 29 20 28 | 73 79 6d 62 6f 6c 70 20 |r l))) (|symbolp |
|00002110| 28 63 61 72 20 6c 29 29 | 29 0d 09 09 09 09 20 20 |(car l))|)..... |
|00002120| 20 28 72 65 74 75 72 6e | 20 27 64 65 73 65 74 71 | (return| 'desetq|
|00002130| 29 29 29 0d 09 09 09 20 | 78 29 0d 09 20 20 20 28 |))).... |x).. (|
|00002140| 64 6f 20 28 28 78 20 78 | 20 28 63 64 64 72 20 78 |do ((x x| (cddr x|
|00002150| 29 29 20 28 72 20 6e 69 | 6c 29 20 28 76 61 72 29 |)) (r ni|l) (var)|
|00002160| 20 28 76 61 6c 29 29 0d | 09 09 20 20 20 28 28 6e | (val)).|.. ((n|
|00002170| 75 6c 6c 20 78 29 20 28 | 61 6e 64 20 72 20 28 63 |ull x) (|and r (c|
|00002180| 6f 6e 73 20 27 73 65 74 | 71 20 72 29 29 29 0d 09 |ons 'set|q r)))..|
|00002190| 09 20 28 73 65 74 71 20 | 76 61 72 20 28 63 61 72 |. (setq |var (car|
|000021a0| 20 78 29 20 76 61 6c 20 | 28 63 61 64 72 20 78 29 | x) val |(cadr x)|
|000021b0| 29 0d 09 09 20 28 63 6f | 6e 64 20 28 28 61 6e 64 |)... (co|nd ((and|
|000021c0| 20 28 6e 6f 74 20 28 61 | 74 6f 6d 20 76 61 72 29 | (not (a|tom var)|
|000021d0| 29 0d 09 09 09 09 09 20 | 28 6e 6f 74 20 28 61 74 |)...... |(not (at|
|000021e0| 6f 6d 20 76 61 6c 29 29 | 0d 09 09 09 09 09 20 28 |om val))|...... (|
|000021f0| 6e 6f 74 20 28 61 6e 64 | 20 28 6d 65 6d 62 65 72 |not (and| (member|
|00002200| 20 28 63 61 72 20 76 61 | 6c 29 20 27 28 63 61 72 | (car va|l) '(car|
|00002210| 20 63 64 72 20 63 61 64 | 72 20 63 64 64 72 20 63 | cdr cad|r cddr c|
|00002220| 61 61 72 20 63 64 61 72 | 29 29 0d 09 09 09 09 09 |aar cdar|))......|
|00002230| 09 09 20 20 20 28 61 74 | 6f 6d 20 28 63 61 64 72 |.. (at|om (cadr|
|00002240| 20 76 61 6c 29 29 29 29 | 29 0d 09 09 09 09 20 20 | val))))|)..... |
|00002250| 28 73 65 74 71 20 78 20 | 28 6c 69 73 74 2a 20 28 |(setq x |(list* (|
|00002260| 6f 72 20 6c 6f 6f 70 2d | 64 65 73 65 74 71 2d 74 |or loop-|desetq-t|
|00002270| 65 6d 70 6f 72 61 72 79 | 0d 09 09 09 09 09 09 09 |emporary|........|
|00002280| 09 09 20 28 73 65 74 71 | 20 6c 6f 6f 70 2d 64 65 |.. (setq| loop-de|
|00002290| 73 65 74 71 2d 74 65 6d | 70 6f 72 61 72 79 0d 09 |setq-tem|porary..|
|000022a0| 09 09 09 09 09 09 09 09 | 09 20 20 20 28 6c 6f 6f |........|. (loo|
|000022b0| 70 2d 67 65 6e 74 65 6d | 70 20 27 6c 6f 6f 70 2d |p-gentem|p 'loop-|
|000022c0| 64 65 73 65 74 71 2d 29 | 29 29 0d 09 09 09 09 09 |desetq-)|))......|
|000022d0| 09 09 09 20 76 61 6c 20 | 76 61 72 20 6c 6f 6f 70 |... val |var loop|
|000022e0| 2d 64 65 73 65 74 71 2d | 74 65 6d 70 6f 72 61 72 |-desetq-|temporar|
|000022f0| 79 20 28 63 64 64 72 20 | 78 29 29 29 29 29 0d 09 |y (cddr |x)))))..|
|00002300| 09 20 28 73 65 74 71 20 | 72 20 28 6e 63 6f 6e 63 |. (setq |r (nconc|
|00002310| 20 72 20 28 6c 6f 6f 70 | 2d 64 65 73 65 74 71 2d | r (loop|-desetq-|
|00002320| 69 6e 74 65 72 6e 61 6c | 20 28 63 61 72 20 78 29 |internal| (car x)|
|00002330| 20 28 63 61 64 72 20 78 | 29 29 29 29 29 29 29 0d | (cadr x|))))))).|
|00002340| 0d 0d 28 64 65 66 75 6e | 20 6c 6f 6f 70 2d 64 65 |..(defun| loop-de|
|00002350| 73 65 74 71 2d 69 6e 74 | 65 72 6e 61 6c 20 28 76 |setq-int|ernal (v|
|00002360| 61 72 20 76 61 6c 29 0d | 20 20 28 63 6f 6e 64 20 |ar val).| (cond |
|00002370| 28 28 6e 75 6c 6c 20 76 | 61 72 29 20 6e 69 6c 29 |((null v|ar) nil)|
|00002380| 0d 09 09 28 28 61 74 6f | 6d 20 76 61 72 29 20 28 |...((ato|m var) (|
|00002390| 6c 69 73 74 20 76 61 72 | 20 76 61 6c 29 29 0d 09 |list var| val))..|
|000023a0| 09 28 74 20 28 6e 63 6f | 6e 63 20 28 6c 6f 6f 70 |.(t (nco|nc (loop|
|000023b0| 2d 64 65 73 65 74 71 2d | 69 6e 74 65 72 6e 61 6c |-desetq-|internal|
|000023c0| 20 28 63 61 72 20 76 61 | 72 29 20 60 28 63 61 72 | (car va|r) `(car|
|000023d0| 20 2c 76 61 6c 29 29 0d | 09 09 09 09 20 20 28 6c | ,val)).|.... (l|
|000023e0| 6f 6f 70 2d 64 65 73 65 | 74 71 2d 69 6e 74 65 72 |oop-dese|tq-inter|
|000023f0| 6e 61 6c 20 28 63 64 72 | 20 76 61 72 29 20 60 28 |nal (cdr| var) `(|
|00002400| 63 64 72 20 2c 76 61 6c | 29 29 29 29 29 29 0d 0d |cdr ,val|))))))..|
|00002410| 0d 28 64 65 66 75 6e 20 | 6c 6f 6f 70 2d 6d 61 6b |.(defun |loop-mak|
|00002420| 65 2d 73 65 74 71 20 28 | 70 61 69 72 73 29 0d 09 |e-setq (|pairs)..|
|00002430| 28 61 6e 64 20 70 61 69 | 72 73 20 28 6c 6f 6f 70 |(and pai|rs (loop|
|00002440| 2d 6d 61 6b 65 2d 64 65 | 73 65 74 71 20 70 61 69 |-make-de|setq pai|
|00002450| 72 73 29 29 29 0d 0d 0d | 28 64 65 66 70 61 72 61 |rs)))...|(defpara|
|00002460| 6d 65 74 65 72 20 6c 6f | 6f 70 2d 6b 65 79 77 6f |meter lo|op-keywo|
|00002470| 72 64 2d 61 6c 69 73 74 | 09 09 09 09 09 09 3b 63 |rd-alist|......;c|
|00002480| 6c 61 75 73 65 20 69 6e | 74 72 6f 64 75 63 65 72 |lause in|troducer|
|00002490| 73 0d 09 20 27 28 20 28 | 6e 61 6d 65 64 20 6c 6f |s.. '( (|named lo|
|000024a0| 6f 70 2d 64 6f 2d 6e 61 | 6d 65 64 29 0d 09 09 28 |op-do-na|med)...(|
|000024b0| 69 6e 69 74 69 61 6c 6c | 79 20 6c 6f 6f 70 2d 64 |initiall|y loop-d|
|000024c0| 6f 2d 69 6e 69 74 69 61 | 6c 6c 79 29 0d 09 09 28 |o-initia|lly)...(|
|000024d0| 66 69 6e 61 6c 6c 79 20 | 6c 6f 6f 70 2d 64 6f 2d |finally |loop-do-|
|000024e0| 66 69 6e 61 6c 6c 79 29 | 0d 09 09 28 6e 6f 64 65 |finally)|...(node|
|000024f0| 63 6c 61 72 65 20 6c 6f | 6f 70 2d 6e 6f 64 65 63 |clare lo|op-nodec|
|00002500| 6c 61 72 65 29 0d 09 09 | 28 64 6f 20 6c 6f 6f 70 |lare)...|(do loop|
|00002510| 2d 64 6f 2d 64 6f 29 0d | 09 09 28 64 6f 69 6e 67 |-do-do).|..(doing|
|00002520| 20 6c 6f 6f 70 2d 64 6f | 2d 64 6f 29 0d 09 09 28 | loop-do|-do)...(|
|00002530| 72 65 74 75 72 6e 20 6c | 6f 6f 70 2d 64 6f 2d 72 |return l|oop-do-r|
|00002540| 65 74 75 72 6e 29 0d 09 | 09 28 63 6f 6c 6c 65 63 |eturn)..|.(collec|
|00002550| 74 20 6c 6f 6f 70 2d 64 | 6f 2d 63 6f 6c 6c 65 63 |t loop-d|o-collec|
|00002560| 74 20 6c 69 73 74 29 0d | 09 09 28 63 6f 6c 6c 65 |t list).|..(colle|
|00002570| 63 74 69 6e 67 20 6c 6f | 6f 70 2d 64 6f 2d 63 6f |cting lo|op-do-co|
|00002580| 6c 6c 65 63 74 20 6c 69 | 73 74 29 0d 09 09 28 61 |llect li|st)...(a|
|00002590| 70 70 65 6e 64 20 6c 6f | 6f 70 2d 64 6f 2d 63 6f |ppend lo|op-do-co|
|000025a0| 6c 6c 65 63 74 20 61 70 | 70 65 6e 64 29 0d 09 09 |llect ap|pend)...|
|000025b0| 28 61 70 70 65 6e 64 69 | 6e 67 20 6c 6f 6f 70 2d |(appendi|ng loop-|
|000025c0| 64 6f 2d 63 6f 6c 6c 65 | 63 74 20 61 70 70 65 6e |do-colle|ct appen|
|000025d0| 64 29 0d 09 09 28 6e 63 | 6f 6e 63 20 6c 6f 6f 70 |d)...(nc|onc loop|
|000025e0| 2d 64 6f 2d 63 6f 6c 6c | 65 63 74 20 6e 63 6f 6e |-do-coll|ect ncon|
|000025f0| 63 29 0d 09 09 28 6e 63 | 6f 6e 63 69 6e 67 20 6c |c)...(nc|oncing l|
|00002600| 6f 6f 70 2d 64 6f 2d 63 | 6f 6c 6c 65 63 74 20 6e |oop-do-c|ollect n|
|00002610| 63 6f 6e 63 29 0d 09 09 | 28 63 6f 75 6e 74 20 6c |conc)...|(count l|
|00002620| 6f 6f 70 2d 64 6f 2d 63 | 6f 6c 6c 65 63 74 20 63 |oop-do-c|ollect c|
|00002630| 6f 75 6e 74 29 0d 09 09 | 28 63 6f 75 6e 74 69 6e |ount)...|(countin|
|00002640| 67 20 6c 6f 6f 70 2d 64 | 6f 2d 63 6f 6c 6c 65 63 |g loop-d|o-collec|
|00002650| 74 20 63 6f 75 6e 74 29 | 0d 09 09 28 73 75 6d 20 |t count)|...(sum |
|00002660| 6c 6f 6f 70 2d 64 6f 2d | 63 6f 6c 6c 65 63 74 20 |loop-do-|collect |
|00002670| 73 75 6d 29 0d 09 09 28 | 73 75 6d 6d 69 6e 67 20 |sum)...(|summing |
|00002680| 6c 6f 6f 70 2d 64 6f 2d | 63 6f 6c 6c 65 63 74 20 |loop-do-|collect |
|00002690| 73 75 6d 29 0d 09 09 28 | 6d 61 78 69 6d 69 7a 65 |sum)...(|maximize|
|000026a0| 20 6c 6f 6f 70 2d 64 6f | 2d 63 6f 6c 6c 65 63 74 | loop-do|-collect|
|000026b0| 20 6d 61 78 29 0d 09 09 | 28 6d 69 6e 69 6d 69 7a | max)...|(minimiz|
|000026c0| 65 20 6c 6f 6f 70 2d 64 | 6f 2d 63 6f 6c 6c 65 63 |e loop-d|o-collec|
|000026d0| 74 20 6d 69 6e 29 0d 09 | 09 28 61 6c 77 61 79 73 |t min)..|.(always|
|000026e0| 20 6c 6f 6f 70 2d 64 6f | 2d 61 6c 77 61 79 73 20 | loop-do|-always |
|000026f0| 6e 69 6c 29 20 3b 4e 6f | 72 6d 61 6c 2c 20 64 6f |nil) ;No|rmal, do|
|00002700| 20 61 6c 77 61 79 73 0d | 09 09 28 6e 65 76 65 72 | always.|..(never|
|00002710| 20 6c 6f 6f 70 2d 64 6f | 2d 61 6c 77 61 79 73 20 | loop-do|-always |
|00002720| 74 29 09 3b 20 4e 65 67 | 61 74 65 20 74 68 65 20 |t).; Neg|ate the |
|00002730| 74 65 73 74 20 6f 6e 20 | 61 6c 77 61 79 73 2e 0d |test on |always..|
|00002740| 09 09 28 74 68 65 72 65 | 69 73 20 6c 6f 6f 70 2d |..(there|is loop-|
|00002750| 64 6f 2d 74 68 65 72 65 | 69 73 29 0d 09 09 28 77 |do-there|is)...(w|
|00002760| 68 69 6c 65 20 6c 6f 6f | 70 2d 64 6f 2d 77 68 69 |hile loo|p-do-whi|
|00002770| 6c 65 20 6e 69 6c 20 77 | 68 69 6c 65 29 09 09 3b |le nil w|hile)..;|
|00002780| 20 4e 6f 72 6d 61 6c 2c | 20 64 6f 20 77 68 69 6c | Normal,| do whil|
|00002790| 65 0d 09 09 28 75 6e 74 | 69 6c 20 6c 6f 6f 70 2d |e...(unt|il loop-|
|000027a0| 64 6f 2d 77 68 69 6c 65 | 20 74 20 75 6e 74 69 6c |do-while| t until|
|000027b0| 29 09 09 3b 20 4e 65 67 | 61 74 65 20 74 68 65 20 |)..; Neg|ate the |
|000027c0| 74 65 73 74 20 6f 6e 20 | 77 68 69 6c 65 0d 09 09 |test on |while...|
|000027d0| 28 77 68 65 6e 20 6c 6f | 6f 70 2d 64 6f 2d 77 68 |(when lo|op-do-wh|
|000027e0| 65 6e 20 6e 69 6c 20 77 | 68 65 6e 29 09 09 3b 20 |en nil w|hen)..; |
|000027f0| 4e 6f 72 6d 61 6c 2c 20 | 64 6f 20 77 68 65 6e 0d |Normal, |do when.|
|00002800| 09 09 28 69 66 20 6c 6f | 6f 70 2d 64 6f 2d 77 68 |..(if lo|op-do-wh|
|00002810| 65 6e 20 6e 69 6c 20 69 | 66 29 09 3b 20 73 79 6e |en nil i|f).; syn|
|00002820| 6f 6e 79 6d 6f 75 73 0d | 09 09 28 75 6e 6c 65 73 |onymous.|..(unles|
|00002830| 73 20 6c 6f 6f 70 2d 64 | 6f 2d 77 68 65 6e 20 74 |s loop-d|o-when t|
|00002840| 20 75 6e 6c 65 73 73 29 | 09 09 3b 20 4e 65 67 61 | unless)|..; Nega|
|00002850| 74 65 20 74 68 65 20 74 | 65 73 74 20 6f 6e 20 77 |te the t|est on w|
|00002860| 68 65 6e 0d 09 09 28 77 | 69 74 68 20 6c 6f 6f 70 |hen...(w|ith loop|
|00002870| 2d 64 6f 2d 77 69 74 68 | 29 29 29 0d 0d 0d 28 64 |-do-with|)))...(d|
|00002880| 65 66 70 61 72 61 6d 65 | 74 65 72 20 6c 6f 6f 70 |efparame|ter loop|
|00002890| 2d 69 74 65 72 61 74 69 | 6f 6e 2d 6b 65 79 77 6f |-iterati|on-keywo|
|000028a0| 72 64 2d 61 6c 69 73 74 | 0d 09 60 28 28 66 6f 72 |rd-alist|..`((for|
|000028b0| 20 6c 6f 6f 70 2d 64 6f | 2d 66 6f 72 29 0d 09 20 | loop-do|-for).. |
|000028c0| 20 28 61 73 20 6c 6f 6f | 70 2d 64 6f 2d 66 6f 72 | (as loo|p-do-for|
|000028d0| 29 0d 09 20 20 28 72 65 | 70 65 61 74 20 6c 6f 6f |).. (re|peat loo|
|000028e0| 70 2d 64 6f 2d 72 65 70 | 65 61 74 29 29 29 0d 0d |p-do-rep|eat)))..|
|000028f0| 0d 28 64 65 66 70 61 72 | 61 6d 65 74 65 72 20 6c |.(defpar|ameter l|
|00002900| 6f 6f 70 2d 66 6f 72 2d | 6b 65 79 77 6f 72 64 2d |oop-for-|keyword-|
|00002910| 61 6c 69 73 74 09 09 09 | 09 09 3b 54 79 70 65 73 |alist...|..;Types|
|00002920| 20 6f 66 20 46 4f 52 0d | 09 20 27 28 20 28 3d 20 | of FOR.|. '( (= |
|00002930| 6c 6f 6f 70 2d 66 6f 72 | 2d 65 71 75 61 6c 73 29 |loop-for|-equals)|
|00002940| 0d 09 09 28 66 69 72 73 | 74 20 6c 6f 6f 70 2d 66 |...(firs|t loop-f|
|00002950| 6f 72 2d 66 69 72 73 74 | 29 0d 09 09 28 69 6e 20 |or-first|)...(in |
|00002960| 6c 6f 6f 70 2d 6c 69 73 | 74 2d 73 74 65 70 70 65 |loop-lis|t-steppe|
|00002970| 72 20 63 61 72 29 0d 09 | 09 28 6f 6e 20 6c 6f 6f |r car)..|.(on loo|
|00002980| 70 2d 6c 69 73 74 2d 73 | 74 65 70 70 65 72 20 6e |p-list-s|tepper n|
|00002990| 69 6c 29 0d 09 09 28 66 | 72 6f 6d 20 6c 6f 6f 70 |il)...(f|rom loop|
|000029a0| 2d 66 6f 72 2d 61 72 69 | 74 68 6d 65 74 69 63 20 |-for-ari|thmetic |
|000029b0| 66 72 6f 6d 29 0d 09 09 | 28 64 6f 77 6e 66 72 6f |from)...|(downfro|
|000029c0| 6d 20 6c 6f 6f 70 2d 66 | 6f 72 2d 61 72 69 74 68 |m loop-f|or-arith|
|000029d0| 6d 65 74 69 63 20 64 6f | 77 6e 66 72 6f 6d 29 0d |metic do|wnfrom).|
|000029e0| 09 09 28 75 70 66 72 6f | 6d 20 6c 6f 6f 70 2d 66 |..(upfro|m loop-f|
|000029f0| 6f 72 2d 61 72 69 74 68 | 6d 65 74 69 63 20 75 70 |or-arith|metic up|
|00002a00| 66 72 6f 6d 29 0d 09 09 | 28 62 65 6c 6f 77 20 6c |from)...|(below l|
|00002a10| 6f 6f 70 2d 66 6f 72 2d | 61 72 69 74 68 6d 65 74 |oop-for-|arithmet|
|00002a20| 69 63 20 62 65 6c 6f 77 | 29 0d 09 09 28 74 6f 20 |ic below|)...(to |
|00002a30| 6c 6f 6f 70 2d 66 6f 72 | 2d 61 72 69 74 68 6d 65 |loop-for|-arithme|
|00002a40| 74 69 63 20 74 6f 29 0d | 09 09 28 62 65 69 6e 67 |tic to).|..(being|
|00002a50| 20 6c 6f 6f 70 2d 66 6f | 72 2d 62 65 69 6e 67 29 | loop-fo|r-being)|
|00002a60| 29 29 0d 0d 28 64 65 66 | 76 61 72 20 6c 6f 6f 70 |))..(def|var loop|
|00002a70| 2d 70 72 6f 67 2d 6e 61 | 6d 65 73 29 0d 0d 0d 28 |-prog-na|mes)...(|
|00002a80| 64 65 66 76 61 72 20 6c | 6f 6f 70 2d 6d 61 63 72 |defvar l|oop-macr|
|00002a90| 6f 2d 65 6e 76 69 72 6f | 6e 6d 65 6e 74 29 20 3b |o-enviro|nment) ;|
|00002aa0| 53 65 63 6f 6e 64 20 61 | 72 67 20 74 6f 20 6d 61 |Second a|rg to ma|
|00002ab0| 63 72 6f 20 66 75 6e 63 | 74 69 6f 6e 73 2c 0d 09 |cro func|tions,..|
|00002ac0| 09 09 09 09 09 09 09 09 | 09 3b 70 61 73 73 65 64 |........|.;passed|
|00002ad0| 20 74 6f 20 6d 61 63 72 | 6f 65 78 70 61 6e 64 2e | to macr|oexpand.|
|00002ae0| 0d 0d 28 64 65 66 76 61 | 72 20 6c 6f 6f 70 2d 70 |..(defva|r loop-p|
|00002af0| 61 74 68 2d 6b 65 79 77 | 6f 72 64 2d 61 6c 69 73 |ath-keyw|ord-alis|
|00002b00| 74 20 6e 69 6c 29 09 09 | 09 3b 20 50 41 54 48 20 |t nil)..|.; PATH |
|00002b10| 66 75 6e 63 74 69 6f 6e | 73 0d 28 64 65 66 76 61 |function|s.(defva|
|00002b20| 72 20 6c 6f 6f 70 2d 6e | 61 6d 65 64 2d 76 61 72 |r loop-n|amed-var|
|00002b30| 69 61 62 6c 65 73 29 09 | 09 09 09 09 3b 20 73 65 |iables).|....; se|
|00002b40| 65 20 4c 4f 4f 50 2d 4e | 41 4d 45 44 2d 56 41 52 |e LOOP-N|AMED-VAR|
|00002b50| 49 41 42 4c 45 0d 28 64 | 65 66 76 61 72 20 6c 6f |IABLE.(d|efvar lo|
|00002b60| 6f 70 2d 76 61 72 69 61 | 62 6c 65 73 29 09 09 09 |op-varia|bles)...|
|00002b70| 09 09 3b 56 61 72 69 61 | 62 6c 65 73 20 6c 6f 63 |..;Varia|bles loc|
|00002b80| 61 6c 20 74 6f 20 74 68 | 65 20 6c 6f 6f 70 0d 28 |al to th|e loop.(|
|00002b90| 64 65 66 76 61 72 20 6c | 6f 6f 70 2d 64 65 63 6c |defvar l|oop-decl|
|00002ba0| 61 72 61 74 69 6f 6e 73 | 29 09 09 09 09 09 09 3b |arations|)......;|
|00002bb0| 20 4c 6f 63 61 6c 20 64 | 63 6c 73 20 66 6f 72 20 | Local d|cls for |
|00002bc0| 61 62 6f 76 65 0d 28 64 | 65 66 76 61 72 20 6c 6f |above.(d|efvar lo|
|00002bd0| 6f 70 2d 6e 6f 64 65 63 | 6c 61 72 65 29 09 09 09 |op-nodec|lare)...|
|00002be0| 09 09 3b 20 62 75 74 20 | 64 6f 6e 27 74 20 64 65 |..; but |don't de|
|00002bf0| 63 6c 61 72 65 20 74 68 | 65 73 65 0d 28 64 65 66 |clare th|ese.(def|
|00002c00| 76 61 72 20 6c 6f 6f 70 | 2d 76 61 72 69 61 62 6c |var loop|-variabl|
|00002c10| 65 2d 73 74 61 63 6b 29 | 0d 28 64 65 66 76 61 72 |e-stack)|.(defvar|
|00002c20| 20 6c 6f 6f 70 2d 64 65 | 63 6c 61 72 61 74 69 6f | loop-de|claratio|
|00002c30| 6e 2d 73 74 61 63 6b 29 | 0d 28 64 65 66 76 61 72 |n-stack)|.(defvar|
|00002c40| 20 6c 6f 6f 70 2d 64 65 | 73 65 74 71 2d 63 72 6f | loop-de|setq-cro|
|00002c50| 63 6b 73 29 09 09 09 09 | 09 09 3b 20 73 65 65 20 |cks)....|..; see |
|00002c60| 6c 6f 6f 70 2d 6d 61 6b | 65 2d 76 61 72 69 61 62 |loop-mak|e-variab|
|00002c70| 6c 65 0d 28 64 65 66 76 | 61 72 20 6c 6f 6f 70 2d |le.(defv|ar loop-|
|00002c80| 64 65 73 65 74 71 2d 73 | 74 61 63 6b 29 09 09 09 |desetq-s|tack)...|
|00002c90| 09 09 09 3b 20 61 6e 64 | 20 6c 6f 6f 70 2d 74 72 |...; and| loop-tr|
|00002ca0| 61 6e 73 6c 61 74 65 2d | 31 0d 28 64 65 66 76 61 |anslate-|1.(defva|
|00002cb0| 72 20 6c 6f 6f 70 2d 70 | 72 6f 6c 6f 67 75 65 29 |r loop-p|rologue)|
|00002cc0| 09 09 09 09 09 09 09 3b | 4c 69 73 74 20 6f 66 20 |.......;|List of |
|00002cd0| 66 6f 72 6d 73 20 69 6e | 20 72 65 76 65 72 73 65 |forms in| reverse|
|00002ce0| 20 6f 72 64 65 72 0d 28 | 64 65 66 76 61 72 20 6c | order.(|defvar l|
|00002cf0| 6f 6f 70 2d 77 72 61 70 | 70 65 72 73 29 09 09 09 |oop-wrap|pers)...|
|00002d00| 09 09 09 09 3b 4c 69 73 | 74 20 6f 66 20 77 72 61 |....;Lis|t of wra|
|00002d10| 70 70 69 6e 67 20 66 6f | 72 6d 73 2c 20 69 6e 6e |pping fo|rms, inn|
|00002d20| 65 72 6d 6f 73 74 20 66 | 69 72 73 74 0d 28 64 65 |ermost f|irst.(de|
|00002d30| 66 76 61 72 20 6c 6f 6f | 70 2d 62 65 66 6f 72 65 |fvar loo|p-before|
|00002d40| 2d 6c 6f 6f 70 29 0d 28 | 64 65 66 76 61 72 20 6c |-loop).(|defvar l|
|00002d50| 6f 6f 70 2d 62 6f 64 79 | 29 09 09 09 09 09 09 09 |oop-body|).......|
|00002d60| 09 3b 2e 2e 0d 28 64 65 | 66 76 61 72 20 6c 6f 6f |.;...(de|fvar loo|
|00002d70| 70 2d 61 66 74 65 72 2d | 62 6f 64 79 29 09 09 09 |p-after-|body)...|
|00002d80| 09 09 09 3b 2e 2e 20 66 | 6f 72 20 46 4f 52 20 73 |...;.. f|or FOR s|
|00002d90| 74 65 70 70 65 72 73 0d | 28 64 65 66 76 61 72 20 |teppers.|(defvar |
|00002da0| 6c 6f 6f 70 2d 65 70 69 | 6c 6f 67 75 65 29 09 09 |loop-epi|logue)..|
|00002db0| 09 09 09 09 09 3b 2e 2e | 0d 28 64 65 66 76 61 72 |.....;..|.(defvar|
|00002dc0| 20 6c 6f 6f 70 2d 61 66 | 74 65 72 2d 65 70 69 6c | loop-af|ter-epil|
|00002dd0| 6f 67 75 65 29 09 09 09 | 09 09 3b 53 6f 20 43 4f |ogue)...|..;So CO|
|00002de0| 4c 4c 45 43 54 27 73 20 | 52 45 54 55 52 4e 20 63 |LLECT's |RETURN c|
|00002df0| 6f 6d 65 73 20 61 66 74 | 65 72 20 46 49 4e 41 4c |omes aft|er FINAL|
|00002e00| 4c 59 0d 28 64 65 66 76 | 61 72 20 6c 6f 6f 70 2d |LY.(defv|ar loop-|
|00002e10| 63 6f 6e 64 69 74 69 6f | 6e 61 6c 73 29 09 09 09 |conditio|nals)...|
|00002e20| 09 09 09 3b 49 66 20 6e | 6f 6e 2d 4e 49 4c 2c 20 |...;If n|on-NIL, |
|00002e30| 63 6f 6e 64 69 74 69 6f | 6e 20 66 6f 72 20 6e 65 |conditio|n for ne|
|00002e40| 78 74 20 66 6f 72 6d 20 | 69 6e 20 62 6f 64 79 0d |xt form |in body.|
|00002e50| 20 20 3b 54 68 65 20 61 | 62 6f 76 65 20 69 73 20 | ;The a|bove is |
|00002e60| 61 63 74 75 61 6c 6c 79 | 20 61 20 6c 69 73 74 20 |actually| a list |
|00002e70| 6f 66 20 65 6e 74 72 69 | 65 73 20 6f 66 20 74 68 |of entri|es of th|
|00002e80| 65 20 66 6f 72 6d 0d 20 | 20 3b 28 63 6f 6e 64 20 |e form. | ;(cond |
|00002e90| 28 63 6f 6e 64 69 74 69 | 6f 6e 20 66 6f 72 6d 73 |(conditi|on forms|
|00002ea0| 2e 2e 2e 29 29 0d 20 20 | 3b 57 68 65 6e 20 69 74 |...)). |;When it|
|00002eb0| 20 69 73 20 6f 75 74 70 | 75 74 2c 20 65 61 63 68 | is outp|ut, each|
|00002ec0| 20 73 75 63 63 65 73 73 | 69 76 65 20 63 6f 6e 64 | success|ive cond|
|00002ed0| 69 74 69 6f 6e 20 77 69 | 6c 6c 20 67 65 74 0d 20 |ition wi|ll get. |
|00002ee0| 20 3b 6e 65 73 74 65 64 | 20 69 6e 73 69 64 65 20 | ;nested| inside |
|00002ef0| 74 68 65 20 70 72 65 76 | 69 6f 75 73 20 6f 6e 65 |the prev|ious one|
|00002f00| 2c 20 62 75 74 20 69 74 | 20 69 73 20 6e 6f 74 20 |, but it| is not |
|00002f10| 62 75 69 6c 74 20 75 70 | 0d 20 20 3b 74 68 61 74 |built up|. ;that|
|00002f20| 20 77 61 79 20 62 65 63 | 61 75 73 65 20 79 6f 75 | way bec|ause you|
|00002f30| 20 77 6f 75 6c 64 6e 27 | 74 20 62 65 20 61 62 6c | wouldn'|t be abl|
|00002f40| 65 20 74 6f 20 74 65 6c | 6c 20 61 20 57 48 45 4e |e to tel|l a WHEN|
|00002f50| 2d 67 65 6e 65 72 61 74 | 65 64 0d 20 20 3b 43 4f |-generat|ed. ;CO|
|00002f60| 4e 44 20 66 72 6f 6d 20 | 61 20 75 73 65 72 2d 67 |ND from |a user-g|
|00002f70| 65 6e 65 72 61 74 65 64 | 20 43 4f 4e 44 2e 0d 20 |enerated| COND.. |
|00002f80| 20 3b 57 68 65 6e 20 45 | 4c 53 45 20 69 73 20 75 | ;When E|LSE is u|
|00002f90| 73 65 64 2c 20 65 61 63 | 68 20 63 6f 6e 64 20 63 |sed, eac|h cond c|
|00002fa0| 61 6e 20 67 65 74 20 61 | 20 73 65 63 6f 6e 64 20 |an get a| second |
|00002fb0| 63 6c 61 75 73 65 0d 0d | 28 64 65 66 76 61 72 20 |clause..|(defvar |
|00002fc0| 6c 6f 6f 70 2d 77 68 65 | 6e 2d 69 74 2d 76 61 72 |loop-whe|n-it-var|
|00002fd0| 69 61 62 6c 65 29 09 09 | 09 09 09 3b 53 65 65 20 |iable)..|...;See |
|00002fe0| 4c 4f 4f 50 2d 44 4f 2d | 57 48 45 4e 0d 28 64 65 |LOOP-DO-|WHEN.(de|
|00002ff0| 66 76 61 72 20 6c 6f 6f | 70 2d 6e 65 76 65 72 2d |fvar loo|p-never-|
|00003000| 73 74 65 70 70 65 64 2d | 76 61 72 69 61 62 6c 65 |stepped-|variable|
|00003010| 29 09 09 09 3b 20 73 65 | 65 20 4c 4f 4f 50 2d 46 |)...; se|e LOOP-F|
|00003020| 4f 52 2d 46 49 52 53 54 | 0d 28 64 65 66 76 61 72 |OR-FIRST|.(defvar|
|00003030| 20 6c 6f 6f 70 2d 65 6d | 69 74 74 65 64 2d 62 6f | loop-em|itted-bo|
|00003040| 64 79 3f 29 09 09 09 09 | 09 09 3b 20 73 65 65 20 |dy?)....|..; see |
|00003050| 4c 4f 4f 50 2d 45 4d 49 | 54 2d 42 4f 44 59 2c 0d |LOOP-EMI|T-BODY,.|
|00003060| 09 09 09 09 09 09 09 09 | 09 09 09 09 3b 20 61 6e |........|....; an|
|00003070| 64 20 4c 4f 4f 50 2d 44 | 4f 2d 46 4f 52 0d 28 64 |d LOOP-D|O-FOR.(d|
|00003080| 65 66 76 61 72 20 6c 6f | 6f 70 2d 69 74 65 72 61 |efvar lo|op-itera|
|00003090| 74 69 6f 6e 2d 76 61 72 | 69 61 62 6c 65 73 29 09 |tion-var|iables).|
|000030a0| 09 09 09 3b 20 4c 4f 4f | 50 2d 4d 41 4b 45 2d 49 |...; LOO|P-MAKE-I|
|000030b0| 54 45 52 41 54 49 4f 4e | 2d 56 41 52 49 41 42 4c |TERATION|-VARIABL|
|000030c0| 45 0d 28 64 65 66 76 61 | 72 20 6c 6f 6f 70 2d 69 |E.(defva|r loop-i|
|000030d0| 74 65 72 61 74 69 6f 6e | 2d 76 61 72 69 61 62 6c |teration|-variabl|
|000030e0| 65 70 29 09 09 09 09 3b | 20 64 69 74 74 6f 0d 28 |ep)....;| ditto.(|
|000030f0| 64 65 66 76 61 72 20 6c | 6f 6f 70 2d 63 6f 6c 6c |defvar l|oop-coll|
|00003100| 65 63 74 2d 63 72 75 66 | 74 29 09 09 09 09 09 09 |ect-cruf|t)......|
|00003110| 3b 20 66 6f 72 20 6d 75 | 6c 74 69 70 6c 65 20 43 |; for mu|ltiple C|
|00003120| 4f 4c 4c 45 43 54 73 20 | 28 65 74 63 29 0d 28 64 |OLLECTs |(etc).(d|
|00003130| 65 66 76 61 72 20 6c 6f | 6f 70 2d 73 6f 75 72 63 |efvar lo|op-sourc|
|00003140| 65 2d 63 6f 64 65 29 0d | 28 64 65 66 76 61 72 20 |e-code).|(defvar |
|00003150| 6c 6f 6f 70 2d 64 75 70 | 6c 69 63 61 74 65 2d 63 |loop-dup|licate-c|
|00003160| 6f 64 65 20 6e 69 6c 29 | 20 20 3b 20 73 65 65 20 |ode nil)| ; see |
|00003170| 4c 4f 4f 50 2d 4f 50 54 | 49 4d 49 5a 45 2d 44 55 |LOOP-OPT|IMIZE-DU|
|00003180| 50 4c 49 43 41 54 45 44 | 2d 43 4f 44 45 2d 45 54 |PLICATED|-CODE-ET|
|00003190| 43 0d 0d 0d 3b 3b 3b 3b | 20 43 6f 6e 73 74 72 75 |C...;;;;| Constru|
|000031a0| 63 74 20 61 20 76 61 6c | 75 65 20 72 65 74 75 72 |ct a val|ue retur|
|000031b0| 6e 0d 0d 0d 28 64 65 66 | 75 6e 20 6c 6f 6f 70 2d |n...(def|un loop-|
|000031c0| 63 6f 6e 73 74 72 75 63 | 74 2d 72 65 74 75 72 6e |construc|t-return|
|000031d0| 20 28 66 6f 72 6d 29 0d | 20 20 28 69 66 20 6c 6f | (form).| (if lo|
|000031e0| 6f 70 2d 70 72 6f 67 2d | 6e 61 6d 65 73 0d 09 20 |op-prog-|names.. |
|000031f0| 20 60 28 72 65 74 75 72 | 6e 2d 66 72 6f 6d 20 2c | `(retur|n-from ,|
|00003200| 28 63 61 72 20 6c 6f 6f | 70 2d 70 72 6f 67 2d 6e |(car loo|p-prog-n|
|00003210| 61 6d 65 73 29 20 2c 66 | 6f 72 6d 29 0d 09 20 20 |ames) ,f|orm).. |
|00003220| 60 28 72 65 74 75 72 6e | 20 2c 66 6f 72 6d 29 29 |`(return| ,form))|
|00003230| 29 0d 0d 3b 3b 3b 3b 20 | 54 6f 6b 65 6e 20 48 61 |)..;;;; |Token Ha|
|00003240| 63 6b 65 72 79 0d 0d 3b | 43 6f 6d 70 61 72 65 20 |ckery..;|Compare |
|00003250| 74 77 6f 20 22 74 6f 6b | 65 6e 73 22 2e 09 54 68 |two "tok|ens"..Th|
|00003260| 65 20 66 69 72 73 74 20 | 69 73 20 74 68 65 20 66 |e first |is the f|
|00003270| 72 6f 62 20 6f 75 74 20 | 6f 66 20 4c 4f 4f 50 2d |rob out |of LOOP-|
|00003280| 53 4f 55 52 43 45 2d 43 | 4f 44 45 2c 0d 3b 74 68 |SOURCE-C|ODE,.;th|
|00003290| 65 20 73 65 63 6f 6e 64 | 20 61 20 73 79 6d 62 6f |e second| a symbo|
|000032a0| 6c 20 74 6f 20 63 68 65 | 63 6b 20 61 67 61 69 6e |l to che|ck again|
|000032b0| 73 74 2e 0d 0d 28 64 65 | 66 75 6e 20 6c 6f 6f 70 |st...(de|fun loop|
|000032c0| 2d 74 65 71 75 61 6c 20 | 28 78 31 20 78 32 29 0d |-tequal |(x1 x2).|
|000032d0| 20 20 28 61 6e 64 20 28 | 73 79 6d 62 6f 6c 70 20 | (and (|symbolp |
|000032e0| 78 31 29 20 28 73 74 72 | 69 6e 67 3d 20 78 31 20 |x1) (str|ing= x1 |
|000032f0| 78 32 29 29 29 0d 0d 0d | 28 64 65 66 75 6e 20 6c |x2)))...|(defun l|
|00003300| 6f 6f 70 2d 74 61 73 73 | 6f 63 20 28 6b 77 64 20 |oop-tass|oc (kwd |
|00003310| 61 6c 69 73 74 29 0d 20 | 20 28 61 6e 64 20 28 73 |alist). | (and (s|
|00003320| 79 6d 62 6f 6c 70 20 6b | 77 64 29 20 28 61 73 73 |ymbolp k|wd) (ass|
|00003330| 6f 63 20 6b 77 64 20 61 | 6c 69 73 74 20 3a 74 65 |oc kwd a|list :te|
|00003340| 73 74 20 23 27 73 74 72 | 69 6e 67 3d 29 29 29 0d |st #'str|ing=))).|
|00003350| 0d 0d 28 64 65 66 75 6e | 20 6c 6f 6f 70 2d 74 6d |..(defun| loop-tm|
|00003360| 65 6d 62 65 72 20 28 6b | 77 64 20 6c 69 73 74 29 |ember (k|wd list)|
|00003370| 0d 20 20 28 61 6e 64 20 | 28 73 79 6d 62 6f 6c 70 |. (and |(symbolp|
|00003380| 20 6b 77 64 29 20 28 6d | 65 6d 62 65 72 20 6b 77 | kwd) (m|ember kw|
|00003390| 64 20 6c 69 73 74 20 3a | 74 65 73 74 20 23 27 73 |d list :|test #'s|
|000033a0| 74 72 69 6e 67 3d 29 29 | 29 0d 0d 28 64 65 66 6d |tring=))|)..(defm|
|000033b0| 61 63 72 6f 20 64 65 66 | 69 6e 65 2d 6c 6f 6f 70 |acro def|ine-loop|
|000033c0| 2d 6d 61 63 72 6f 20 28 | 6b 65 79 77 6f 72 64 29 |-macro (|keyword)|
|000033d0| 0d 20 20 22 4d 61 6b 65 | 73 20 4b 45 59 57 4f 52 |. "Make|s KEYWOR|
|000033e0| 44 2c 20 77 68 69 63 68 | 20 69 73 20 61 20 4c 4f |D, which| is a LO|
|000033f0| 4f 50 20 6b 65 79 77 6f | 72 64 2c 20 69 6e 74 6f |OP keywo|rd, into|
|00003400| 20 61 20 4c 69 73 70 20 | 6d 61 63 72 6f 20 74 68 | a Lisp |macro th|
|00003410| 61 74 20 6d 61 79 0d 69 | 6e 74 72 6f 64 75 63 65 |at may.i|ntroduce|
|00003420| 20 61 20 4c 4f 4f 50 20 | 66 6f 72 6d 2e 09 54 68 | a LOOP |form..Th|
|00003430| 69 73 20 66 61 63 69 6c | 69 74 79 20 65 78 69 73 |is facil|ity exis|
|00003440| 74 73 20 6d 6f 73 74 6c | 79 20 66 6f 72 20 64 69 |ts mostl|y for di|
|00003450| 65 68 61 72 64 20 75 73 | 65 72 73 20 6f 66 0d 61 |ehard us|ers of.a|
|00003460| 20 70 72 65 64 65 63 65 | 73 73 6f 72 20 6f 66 20 | predece|ssor of |
|00003470| 4c 4f 4f 50 2e 09 55 6e | 63 6f 6e 73 74 72 61 69 |LOOP..Un|constrai|
|00003480| 6e 65 64 20 75 73 65 20 | 69 73 20 6e 6f 74 20 61 |ned use |is not a|
|00003490| 64 76 69 73 65 64 2c 20 | 61 73 20 69 74 20 74 65 |dvised, |as it te|
|000034a0| 6e 64 73 20 74 6f 0d 64 | 65 63 72 65 61 73 65 20 |nds to.d|ecrease |
|000034b0| 74 68 65 20 74 72 61 6e | 73 70 6f 72 74 61 62 69 |the tran|sportabi|
|000034c0| 6c 69 74 79 20 6f 66 20 | 74 68 65 20 63 6f 64 65 |lity of |the code|
|000034d0| 20 61 6e 64 20 6e 65 65 | 64 6c 65 73 73 6c 79 20 | and nee|dlessly |
|000034e0| 75 73 65 73 20 75 70 20 | 61 0d 66 75 6e 63 74 69 |uses up |a.functi|
|000034f0| 6f 6e 20 6e 61 6d 65 2e | 22 0d 20 20 28 6f 72 20 |on name.|". (or |
|00003500| 28 65 71 20 6b 65 79 77 | 6f 72 64 20 27 6c 6f 6f |(eq keyw|ord 'loo|
|00003510| 70 29 0d 09 20 20 28 6c | 6f 6f 70 2d 74 61 73 73 |p).. (l|oop-tass|
|00003520| 6f 63 20 6b 65 79 77 6f | 72 64 20 6c 6f 6f 70 2d |oc keywo|rd loop-|
|00003530| 6b 65 79 77 6f 72 64 2d | 61 6c 69 73 74 29 0d 09 |keyword-|alist)..|
|00003540| 20 20 28 6c 6f 6f 70 2d | 74 61 73 73 6f 63 20 6b | (loop-|tassoc k|
|00003550| 65 79 77 6f 72 64 20 6c | 6f 6f 70 2d 69 74 65 72 |eyword l|oop-iter|
|00003560| 61 74 69 6f 6e 2d 6b 65 | 79 77 6f 72 64 2d 61 6c |ation-ke|yword-al|
|00003570| 69 73 74 29 0d 09 20 20 | 28 6c 6f 6f 70 2d 73 69 |ist).. |(loop-si|
|00003580| 6d 70 6c 65 2d 65 72 72 | 6f 72 20 22 6e 6f 74 20 |mple-err|or "not |
|00003590| 61 20 6c 6f 6f 70 20 6b | 65 79 77 6f 72 64 20 2d |a loop k|eyword -|
|000035a0| 20 64 65 66 69 6e 65 2d | 6c 6f 6f 70 2d 6d 61 63 | define-|loop-mac|
|000035b0| 72 6f 22 20 6b 65 79 77 | 6f 72 64 29 29 0d 3b 20 |ro" keyw|ord)).; |
|000035c0| 20 23 2d 6b 63 6c 09 3b | 20 74 68 69 73 20 64 6f | #-kcl.;| this do|
|000035d0| 65 73 6e 27 74 20 77 6f | 72 6b 20 2d 2d 20 52 47 |esn't wo|rk -- RG|
|000035e0| 43 0d 3b 20 20 60 28 70 | 72 6f 67 6e 0d 3b 09 20 |C.; `(p|rogn.;. |
|000035f0| 28 64 65 66 6d 61 63 72 | 6f 20 2c 6b 65 79 77 6f |(defmacr|o ,keywo|
|00003600| 72 64 20 28 26 77 68 6f | 6c 65 20 77 68 6f 6c 65 |rd (&who|le whole|
|00003610| 2d 66 6f 72 6d 20 26 72 | 65 73 74 20 6b 65 79 77 |-form &r|est keyw|
|00003620| 6f 72 64 73 2d 61 6e 64 | 2d 61 72 67 73 20 26 65 |ords-and|-args &e|
|00003630| 6e 76 69 72 6f 6e 6d 65 | 6e 74 20 65 6e 76 29 0d |nvironme|nt env).|
|00003640| 3b 09 20 20 20 28 64 65 | 63 6c 61 72 65 20 28 69 |;. (de|clare (i|
|00003650| 67 6e 6f 72 65 20 6b 65 | 79 77 6f 72 64 73 2d 61 |gnore ke|ywords-a|
|00003660| 6e 64 2d 61 72 67 73 29 | 29 0d 3b 09 20 20 20 28 |nd-args)|).;. (|
|00003670| 6c 6f 6f 70 2d 74 72 61 | 6e 73 6c 61 74 65 20 77 |loop-tra|nslate w|
|00003680| 68 6f 6c 65 2d 66 6f 72 | 6d 20 65 6e 76 29 29 0d |hole-for|m env)).|
|00003690| 3b 3b 09 23 2b 73 79 6d | 62 6f 6c 69 63 73 20 20 |;;.#+sym|bolics |
|000036a0| 3b 3b 20 74 61 62 20 63 | 6f 72 72 65 63 74 6c 79 |;; tab c|orrectly|
|000036b0| 0d 3b 3b 09 20 28 70 75 | 73 68 6e 65 77 20 27 28 |.;;. (pu|shnew '(|
|000036c0| 6c 6f 6f 70 20 2e 20 7a | 77 65 69 3a 69 6e 64 65 |loop . z|wei:inde|
|000036d0| 6e 74 2d 6c 6f 6f 70 29 | 20 7a 77 65 69 3a 2a 6c |nt-loop)| zwei:*l|
|000036e0| 69 73 70 2d 69 6e 64 65 | 6e 74 2d 6f 66 66 73 65 |isp-inde|nt-offse|
|000036f0| 74 2d 61 6c 69 73 74 2a | 20 3a 74 65 73 74 20 23 |t-alist*| :test #|
|00003700| 27 65 71 75 61 6c 29 0d | 3b 09 20 29 0d 3b 20 20 |'equal).|;. ).; |
|00003710| 23 2b 6b 63 6c 09 3b 20 | 74 68 69 73 20 64 6f 65 |#+kcl.; |this doe|
|00003720| 73 6e 27 74 20 77 6f 72 | 6b 20 2d 2d 20 52 47 43 |sn't wor|k -- RGC|
|00003730| 0d 20 20 60 28 73 65 74 | 66 20 28 6d 61 63 72 6f |. `(set|f (macro|
|00003740| 2d 66 75 6e 63 74 69 6f | 6e 20 27 2c 6b 65 79 77 |-functio|n ',keyw|
|00003750| 6f 72 64 29 0d 09 09 20 | 23 27 28 6c 61 6d 62 64 |ord)... |#'(lambd|
|00003760| 61 20 28 77 68 6f 6c 65 | 2d 66 6f 72 6d 20 26 6f |a (whole|-form &o|
|00003770| 70 74 69 6f 6e 61 6c 20 | 65 6e 76 29 09 3b 3b 20 |ptional |env).;; |
|00003780| 52 47 43 20 20 28 61 64 | 64 65 64 20 26 6f 70 74 |RGC (ad|ded &opt|
|00003790| 69 6f 6e 61 6c 29 0d 09 | 09 09 20 28 6c 6f 6f 70 |ional)..|.. (loop|
|000037a0| 2d 74 72 61 6e 73 6c 61 | 74 65 20 77 68 6f 6c 65 |-transla|te whole|
|000037b0| 2d 66 6f 72 6d 20 65 6e | 76 29 29 29 29 0d 0d 0d |-form en|v))))...|
|000037c0| 28 64 65 66 6d 61 63 72 | 6f 20 6c 6f 6f 70 2d 66 |(defmacr|o loop-f|
|000037d0| 69 6e 69 73 68 20 28 29 | 20 0d 20 20 22 43 61 75 |inish ()| . "Cau|
|000037e0| 73 65 73 20 74 68 65 20 | 69 74 65 72 61 74 69 6f |ses the |iteratio|
|000037f0| 6e 20 74 6f 20 74 65 72 | 6d 69 6e 61 74 65 20 5c |n to ter|minate \|
|00003800| 22 6e 6f 72 6d 61 6c 6c | 79 5c 22 2c 20 74 68 65 |"normall|y\", the|
|00003810| 20 73 61 6d 65 20 61 73 | 20 69 6d 70 6c 69 63 69 | same as| implici|
|00003820| 74 0d 74 65 72 6d 69 6e | 61 74 69 6f 6e 20 62 79 |t.termin|ation by|
|00003830| 20 61 6e 20 69 74 65 72 | 61 74 69 6f 6e 20 64 72 | an iter|ation dr|
|00003840| 69 76 69 6e 67 20 63 6c | 61 75 73 65 2c 20 6f 72 |iving cl|ause, or|
|00003850| 20 62 79 20 75 73 65 20 | 6f 66 20 57 48 49 4c 45 | by use |of WHILE|
|00003860| 20 6f 72 0d 55 4e 54 49 | 4c 20 2d 2d 20 74 68 65 | or.UNTI|L -- the|
|00003870| 20 65 70 69 6c 6f 67 75 | 65 20 63 6f 64 65 20 28 | epilogu|e code (|
|00003880| 69 66 20 61 6e 79 29 20 | 77 69 6c 6c 20 62 65 20 |if any) |will be |
|00003890| 72 75 6e 2c 20 61 6e 64 | 20 61 6e 79 20 69 6d 70 |run, and| any imp|
|000038a0| 6c 69 63 69 74 6c 79 0d | 63 6f 6c 6c 65 63 74 65 |licitly.|collecte|
|000038b0| 64 20 72 65 73 75 6c 74 | 20 77 69 6c 6c 20 62 65 |d result| will be|
|000038c0| 20 72 65 74 75 72 6e 65 | 64 20 61 73 20 74 68 65 | returne|d as the|
|000038d0| 20 76 61 6c 75 65 20 6f | 66 20 74 68 65 20 4c 4f | value o|f the LO|
|000038e0| 4f 50 2e 22 0d 20 20 27 | 28 67 6f 20 65 6e 64 2d |OP.". '|(go end-|
|000038f0| 6c 6f 6f 70 29 29 0d 0d | 28 64 65 66 75 6e 20 6c |loop))..|(defun l|
|00003900| 6f 6f 70 2d 74 72 61 6e | 73 6c 61 74 65 20 28 78 |oop-tran|slate (x|
|00003910| 20 6c 6f 6f 70 2d 6d 61 | 63 72 6f 2d 65 6e 76 69 | loop-ma|cro-envi|
|00003920| 72 6f 6e 6d 65 6e 74 29 | 0d 20 20 28 6c 6f 6f 70 |ronment)|. (loop|
|00003930| 2d 74 72 61 6e 73 6c 61 | 74 65 2d 31 20 78 29 29 |-transla|te-1 x))|
|00003940| 0d 0d 3b 3b 28 6c 65 74 | 20 28 28 63 63 6c 3a 3a |..;;(let| ((ccl::|
|00003950| 2a 77 61 72 6e 2d 69 66 | 2d 72 65 64 65 66 69 6e |*warn-if|-redefin|
|00003960| 65 2d 6b 65 72 6e 65 6c | 2a 20 6e 69 6c 29 0d 3b |e-kernel|* nil).;|
|00003970| 3b 09 20 20 28 63 63 6c | 3a 3a 2a 77 61 72 6e 2d |;. (ccl|::*warn-|
|00003980| 69 66 2d 72 65 64 65 66 | 69 6e 65 2a 20 6e 69 6c |if-redef|ine* nil|
|00003990| 29 29 0d 28 64 65 66 69 | 6e 65 2d 6c 6f 6f 70 2d |)).(defi|ne-loop-|
|000039a0| 6d 61 63 72 6f 20 6c 6f | 6f 70 29 0d 0d 0d 28 64 |macro lo|op)...(d|
|000039b0| 65 66 75 6e 20 6c 6f 6f | 70 2d 65 6e 64 2d 74 65 |efun loo|p-end-te|
|000039c0| 73 74 69 66 79 20 28 6c | 69 73 74 2d 6f 66 2d 66 |stify (l|ist-of-f|
|000039d0| 6f 72 6d 73 29 0d 09 28 | 69 66 20 28 6e 75 6c 6c |orms)..(|if (null|
|000039e0| 20 6c 69 73 74 2d 6f 66 | 2d 66 6f 72 6d 73 29 20 | list-of|-forms) |
|000039f0| 6e 69 6c 0d 09 09 60 28 | 77 68 65 6e 20 2c 28 69 |nil...`(|when ,(i|
|00003a00| 66 20 28 6e 75 6c 6c 20 | 28 63 64 72 20 28 73 65 |f (null |(cdr (se|
|00003a10| 74 71 20 6c 69 73 74 2d | 6f 66 2d 66 6f 72 6d 73 |tq list-|of-forms|
|00003a20| 20 28 6e 72 65 76 65 72 | 73 65 20 6c 69 73 74 2d | (nrever|se list-|
|00003a30| 6f 66 2d 66 6f 72 6d 73 | 29 29 29 29 0d 09 09 09 |of-forms|))))....|
|00003a40| 09 09 28 63 61 72 20 6c | 69 73 74 2d 6f 66 2d 66 |..(car l|ist-of-f|
|00003a50| 6f 72 6d 73 29 0d 09 09 | 09 09 09 28 63 6f 6e 73 |orms)...|...(cons|
|00003a60| 20 27 6f 72 20 6c 69 73 | 74 2d 6f 66 2d 66 6f 72 | 'or lis|t-of-for|
|00003a70| 6d 73 29 29 0d 09 09 20 | 20 20 28 67 6f 20 65 6e |ms))... | (go en|
|00003a80| 64 2d 6c 6f 6f 70 29 29 | 29 29 0d 0d 28 64 65 66 |d-loop))|))..(def|
|00003a90| 75 6e 20 6c 6f 6f 70 2d | 6f 70 74 69 6d 69 7a 65 |un loop-|optimize|
|00003aa0| 2d 64 75 70 6c 69 63 61 | 74 65 64 2d 63 6f 64 65 |-duplica|ted-code|
|00003ab0| 2d 65 74 63 20 28 26 61 | 75 78 20 62 65 66 6f 72 |-etc (&a|ux befor|
|00003ac0| 65 20 61 66 74 65 72 20 | 67 72 6f 75 70 61 20 67 |e after |groupa g|
|00003ad0| 72 6f 75 70 62 20 61 20 | 62 0d 09 09 09 09 09 09 |roupb a |b.......|
|00003ae0| 09 09 09 09 09 20 20 20 | 6c 61 73 74 64 69 66 66 |..... |lastdiff|
|00003af0| 29 0d 09 28 64 6f 20 28 | 28 6c 31 20 28 6e 72 65 |)..(do (|(l1 (nre|
|00003b00| 76 65 72 73 65 20 6c 6f | 6f 70 2d 62 65 66 6f 72 |verse lo|op-befor|
|00003b10| 65 2d 6c 6f 6f 70 29 20 | 28 63 64 72 20 6c 31 29 |e-loop) |(cdr l1)|
|00003b20| 29 0d 09 09 20 28 6c 32 | 20 28 6e 72 65 76 65 72 |)... (l2| (nrever|
|00003b30| 73 65 20 6c 6f 6f 70 2d | 61 66 74 65 72 2d 62 6f |se loop-|after-bo|
|00003b40| 64 79 29 20 28 63 64 72 | 20 6c 32 29 29 29 0d 09 |dy) (cdr| l2)))..|
|00003b50| 09 28 28 65 71 75 61 6c | 20 6c 31 20 6c 32 29 0d |.((equal| l1 l2).|
|00003b60| 09 09 20 20 20 28 73 65 | 74 71 20 6c 6f 6f 70 2d |.. (se|tq loop-|
|00003b70| 62 6f 64 79 20 28 6e 63 | 6f 6e 63 20 28 64 65 6c |body (nc|onc (del|
|00003b80| 65 74 65 20 6e 69 6c 20 | 6c 31 29 20 28 6e 72 65 |ete nil |l1) (nre|
|00003b90| 76 65 72 73 65 20 6c 6f | 6f 70 2d 62 6f 64 79 29 |verse lo|op-body)|
|00003ba0| 29 29 29 0d 09 20 20 28 | 70 75 73 68 20 28 63 61 |))).. (|push (ca|
|00003bb0| 72 20 6c 31 29 20 62 65 | 66 6f 72 65 29 20 28 70 |r l1) be|fore) (p|
|00003bc0| 75 73 68 20 28 63 61 72 | 20 6c 32 29 20 61 66 74 |ush (car| l2) aft|
|00003bd0| 65 72 29 29 0d 09 28 63 | 6f 6e 64 20 28 28 6e 6f |er))..(c|ond ((no|
|00003be0| 74 20 28 6e 75 6c 6c 20 | 6c 6f 6f 70 2d 64 75 70 |t (null |loop-dup|
|00003bf0| 6c 69 63 61 74 65 2d 63 | 6f 64 65 29 29 0d 09 09 |licate-c|ode))...|
|00003c00| 09 20 28 73 65 74 71 20 | 6c 6f 6f 70 2d 62 65 66 |. (setq |loop-bef|
|00003c10| 6f 72 65 2d 6c 6f 6f 70 | 20 28 6e 72 65 76 65 72 |ore-loop| (nrever|
|00003c20| 73 65 20 28 64 65 6c 65 | 74 65 20 6e 69 6c 20 62 |se (dele|te nil b|
|00003c30| 65 66 6f 72 65 29 29 0d | 09 09 09 09 20 20 20 6c |efore)).|.... l|
|00003c40| 6f 6f 70 2d 61 66 74 65 | 72 2d 62 6f 64 79 20 28 |oop-afte|r-body (|
|00003c50| 6e 72 65 76 65 72 73 65 | 20 28 64 65 6c 65 74 65 |nreverse| (delete|
|00003c60| 20 6e 69 6c 20 61 66 74 | 65 72 29 29 29 29 0d 09 | nil aft|er))))..|
|00003c70| 09 20 20 28 74 20 28 73 | 65 74 71 20 6c 6f 6f 70 |. (t (s|etq loop|
|00003c80| 2d 62 65 66 6f 72 65 2d | 6c 6f 6f 70 20 6e 69 6c |-before-|loop nil|
|00003c90| 20 6c 6f 6f 70 2d 61 66 | 74 65 72 2d 62 6f 64 79 | loop-af|ter-body|
|00003ca0| 20 6e 69 6c 0d 09 09 09 | 09 20 20 20 62 65 66 6f | nil....|. befo|
|00003cb0| 72 65 20 28 6e 72 65 76 | 65 72 73 65 20 62 65 66 |re (nrev|erse bef|
|00003cc0| 6f 72 65 29 20 61 66 74 | 65 72 20 28 6e 72 65 76 |ore) aft|er (nrev|
|00003cd0| 65 72 73 65 20 61 66 74 | 65 72 29 29 0d 09 09 09 |erse aft|er))....|
|00003ce0| 20 28 64 6f 20 28 28 62 | 62 20 62 65 66 6f 72 65 | (do ((b|b before|
|00003cf0| 20 28 63 64 72 20 62 62 | 29 29 20 28 61 61 20 61 | (cdr bb|)) (aa a|
|00003d00| 66 74 65 72 20 28 63 64 | 72 20 61 61 29 29 29 0d |fter (cd|r aa))).|
|00003d10| 09 09 09 09 20 28 28 6e | 75 6c 6c 20 61 61 29 29 |.... ((n|ull aa))|
|00003d20| 0d 09 09 09 20 20 20 28 | 63 6f 6e 64 20 28 28 6e |.... (|cond ((n|
|00003d30| 6f 74 20 28 65 71 75 61 | 6c 20 28 63 61 72 20 61 |ot (equa|l (car a|
|00003d40| 61 29 20 28 63 61 72 20 | 62 62 29 29 29 20 28 73 |a) (car |bb))) (s|
|00003d50| 65 74 71 20 6c 61 73 74 | 64 69 66 66 20 61 61 29 |etq last|diff aa)|
|00003d60| 29 0d 09 09 09 09 09 20 | 28 28 6e 6f 74 20 28 6c |)...... |((not (l|
|00003d70| 6f 6f 70 2d 73 69 6d 70 | 6c 65 70 20 28 63 61 72 |oop-simp|lep (car|
|00003d80| 20 61 61 29 29 29 09 09 | 3b 4d 75 73 74 6e 27 74 | aa)))..|;Mustn't|
|00003d90| 20 64 75 70 6c 69 63 61 | 74 65 0d 09 09 09 09 09 | duplica|te......|
|00003da0| 20 20 28 72 65 74 75 72 | 6e 20 6e 69 6c 29 29 29 | (retur|n nil)))|
|00003db0| 29 0d 09 09 09 20 28 63 | 6f 6e 64 20 28 6c 61 73 |).... (c|ond (las|
|00003dc0| 74 64 69 66 66 20 20 3b | 44 6f 77 6e 20 74 68 72 |tdiff ;|Down thr|
|00003dd0| 6f 75 67 68 20 6c 61 73 | 74 64 69 66 66 20 73 68 |ough las|tdiff sh|
|00003de0| 6f 75 6c 64 20 62 65 20 | 64 75 70 6c 69 63 61 74 |ould be |duplicat|
|00003df0| 65 64 0d 09 09 09 09 09 | 28 64 6f 20 6e 69 6c 20 |ed......|(do nil |
|00003e00| 28 6e 69 6c 29 0d 09 09 | 09 09 09 20 20 28 61 6e |(nil)...|... (an|
|00003e10| 64 20 28 63 61 72 20 62 | 65 66 6f 72 65 29 20 28 |d (car b|efore) (|
|00003e20| 70 75 73 68 20 28 63 61 | 72 20 62 65 66 6f 72 65 |push (ca|r before|
|00003e30| 29 20 6c 6f 6f 70 2d 62 | 65 66 6f 72 65 2d 6c 6f |) loop-b|efore-lo|
|00003e40| 6f 70 29 29 0d 09 09 09 | 09 09 20 20 28 61 6e 64 |op))....|.. (and|
|00003e50| 20 28 63 61 72 20 61 66 | 74 65 72 29 20 28 70 75 | (car af|ter) (pu|
|00003e60| 73 68 20 28 63 61 72 20 | 61 66 74 65 72 29 20 6c |sh (car |after) l|
|00003e70| 6f 6f 70 2d 61 66 74 65 | 72 2d 62 6f 64 79 29 29 |oop-afte|r-body))|
|00003e80| 0d 09 09 09 09 09 20 20 | 28 73 65 74 71 20 62 65 |...... |(setq be|
|00003e90| 66 6f 72 65 20 28 63 64 | 72 20 62 65 66 6f 72 65 |fore (cd|r before|
|00003ea0| 29 20 61 66 74 65 72 20 | 28 63 64 72 20 61 66 74 |) after |(cdr aft|
|00003eb0| 65 72 29 29 0d 09 09 09 | 09 09 20 20 28 61 6e 64 |er))....|.. (and|
|00003ec0| 20 28 65 71 20 61 66 74 | 65 72 20 28 63 64 72 20 | (eq aft|er (cdr |
|00003ed0| 6c 61 73 74 64 69 66 66 | 29 29 20 28 72 65 74 75 |lastdiff|)) (retu|
|00003ee0| 72 6e 20 6e 69 6c 29 29 | 29 0d 09 09 09 09 09 28 |rn nil))|)......(|
|00003ef0| 73 65 74 71 20 6c 6f 6f | 70 2d 62 65 66 6f 72 65 |setq loo|p-before|
|00003f00| 2d 6c 6f 6f 70 20 28 6e | 72 65 76 65 72 73 65 20 |-loop (n|reverse |
|00003f10| 6c 6f 6f 70 2d 62 65 66 | 6f 72 65 2d 6c 6f 6f 70 |loop-bef|ore-loop|
|00003f20| 29 0d 09 09 09 09 09 09 | 20 20 6c 6f 6f 70 2d 61 |).......| loop-a|
|00003f30| 66 74 65 72 2d 62 6f 64 | 79 20 28 6e 72 65 76 65 |fter-bod|y (nreve|
|00003f40| 72 73 65 20 6c 6f 6f 70 | 2d 61 66 74 65 72 2d 62 |rse loop|-after-b|
|00003f50| 6f 64 79 29 29 29 29 0d | 09 09 09 20 28 64 6f 20 |ody)))).|... (do |
|00003f60| 28 28 62 62 20 28 6e 72 | 65 76 65 72 73 65 20 62 |((bb (nr|everse b|
|00003f70| 65 66 6f 72 65 29 20 28 | 63 64 72 20 62 62 29 29 |efore) (|cdr bb))|
|00003f80| 0d 09 09 09 09 20 20 28 | 61 61 20 28 6e 72 65 76 |..... (|aa (nrev|
|00003f90| 65 72 73 65 20 61 66 74 | 65 72 29 20 28 63 64 72 |erse aft|er) (cdr|
|00003fa0| 20 61 61 29 29 29 0d 09 | 09 09 09 20 28 28 6e 75 | aa)))..|... ((nu|
|00003fb0| 6c 6c 20 61 61 29 29 0d | 09 09 09 20 20 20 28 73 |ll aa)).|... (s|
|00003fc0| 65 74 71 20 61 20 28 63 | 61 72 20 61 61 29 20 62 |etq a (c|ar aa) b|
|00003fd0| 20 28 63 61 72 20 62 62 | 29 29 0d 09 09 09 20 20 | (car bb|)).... |
|00003fe0| 20 28 63 6f 6e 64 20 28 | 28 61 6e 64 20 28 6e 75 | (cond (|(and (nu|
|00003ff0| 6c 6c 20 61 29 20 28 6e | 75 6c 6c 20 62 29 29 29 |ll a) (n|ull b)))|
|00004000| 0d 09 09 09 09 09 20 28 | 28 65 71 75 61 6c 20 61 |...... (|(equal a|
|00004010| 20 62 29 0d 09 09 09 09 | 09 09 28 6c 6f 6f 70 2d | b).....|..(loop-|
|00004020| 6f 75 74 70 75 74 2d 67 | 72 6f 75 70 20 67 72 6f |output-g|roup gro|
|00004030| 75 70 62 20 67 72 6f 75 | 70 61 29 0d 09 09 09 09 |upb grou|pa).....|
|00004040| 09 09 28 70 75 73 68 20 | 61 20 6c 6f 6f 70 2d 62 |..(push |a loop-b|
|00004050| 6f 64 79 29 0d 09 09 09 | 09 09 09 28 73 65 74 71 |ody)....|...(setq|
|00004060| 20 67 72 6f 75 70 62 20 | 6e 69 6c 20 67 72 6f 75 | groupb |nil grou|
|00004070| 70 61 20 6e 69 6c 29 29 | 0d 09 09 09 09 09 20 28 |pa nil))|...... (|
|00004080| 74 20 28 61 6e 64 20 61 | 20 28 70 75 73 68 20 61 |t (and a| (push a|
|00004090| 20 67 72 6f 75 70 61 29 | 29 20 28 61 6e 64 20 62 | groupa)|) (and b|
|000040a0| 20 28 70 75 73 68 20 62 | 20 67 72 6f 75 70 62 29 | (push b| groupb)|
|000040b0| 29 29 29 29 0d 09 09 09 | 20 28 6c 6f 6f 70 2d 6f |))))....| (loop-o|
|000040c0| 75 74 70 75 74 2d 67 72 | 6f 75 70 20 67 72 6f 75 |utput-gr|oup grou|
|000040d0| 70 62 20 67 72 6f 75 70 | 61 29 29 29 0d 09 28 61 |pb group|a)))..(a|
|000040e0| 6e 64 20 6c 6f 6f 70 2d | 6e 65 76 65 72 2d 73 74 |nd loop-|never-st|
|000040f0| 65 70 70 65 64 2d 76 61 | 72 69 61 62 6c 65 0d 09 |epped-va|riable..|
|00004100| 09 20 28 70 75 73 68 20 | 60 28 73 65 74 71 20 2c |. (push |`(setq ,|
|00004110| 6c 6f 6f 70 2d 6e 65 76 | 65 72 2d 73 74 65 70 70 |loop-nev|er-stepp|
|00004120| 65 64 2d 76 61 72 69 61 | 62 6c 65 20 6e 69 6c 29 |ed-varia|ble nil)|
|00004130| 20 6c 6f 6f 70 2d 61 66 | 74 65 72 2d 62 6f 64 79 | loop-af|ter-body|
|00004140| 29 29 0d 09 6e 69 6c 29 | 0d 0d 0d 28 64 65 66 75 |))..nil)|...(defu|
|00004150| 6e 20 6c 6f 6f 70 2d 6f | 75 74 70 75 74 2d 67 72 |n loop-o|utput-gr|
|00004160| 6f 75 70 20 28 62 65 66 | 6f 72 65 20 61 66 74 65 |oup (bef|ore afte|
|00004170| 72 29 0d 09 28 61 6e 64 | 20 28 6f 72 20 61 66 74 |r)..(and| (or aft|
|00004180| 65 72 20 62 65 66 6f 72 | 65 29 0d 09 09 20 28 6c |er befor|e)... (l|
|00004190| 65 74 20 28 28 76 20 28 | 6f 72 20 6c 6f 6f 70 2d |et ((v (|or loop-|
|000041a0| 6e 65 76 65 72 2d 73 74 | 65 70 70 65 64 2d 76 61 |never-st|epped-va|
|000041b0| 72 69 61 62 6c 65 0d 09 | 09 09 09 09 20 20 28 73 |riable..|.... (s|
|000041c0| 65 74 71 20 6c 6f 6f 70 | 2d 6e 65 76 65 72 2d 73 |etq loop|-never-s|
|000041d0| 74 65 70 70 65 64 2d 76 | 61 72 69 61 62 6c 65 0d |tepped-v|ariable.|
|000041e0| 09 09 09 09 09 09 09 28 | 6c 6f 6f 70 2d 6d 61 6b |.......(|loop-mak|
|000041f0| 65 2d 76 61 72 69 61 62 | 6c 65 0d 09 09 09 09 09 |e-variab|le......|
|00004200| 09 09 20 20 28 6c 6f 6f | 70 2d 67 65 6e 74 65 6d |.. (loo|p-gentem|
|00004210| 70 20 27 6c 6f 6f 70 2d | 69 74 65 72 2d 66 6c 61 |p 'loop-|iter-fla|
|00004220| 67 2d 29 20 74 20 6e 69 | 6c 29 29 29 29 29 0d 09 |g-) t ni|l)))))..|
|00004230| 09 09 28 70 75 73 68 20 | 28 63 6f 6e 64 20 28 28 |..(push |(cond ((|
|00004240| 6e 6f 74 20 62 65 66 6f | 72 65 29 0d 09 09 09 09 |not befo|re).....|
|00004250| 09 09 20 20 60 28 75 6e | 6c 65 73 73 20 2c 76 20 |.. `(un|less ,v |
|00004260| 28 70 72 6f 67 6e 20 2c | 40 61 66 74 65 72 29 29 |(progn ,|@after))|
|00004270| 29 0d 09 09 09 09 09 09 | 28 28 6e 6f 74 20 61 66 |).......|((not af|
|00004280| 74 65 72 29 0d 09 09 09 | 09 09 09 20 20 60 28 77 |ter)....|... `(w|
|00004290| 68 65 6e 20 2c 76 20 28 | 70 72 6f 67 6e 20 2c 40 |hen ,v (|progn ,@|
|000042a0| 62 65 66 6f 72 65 29 29 | 29 0d 09 09 09 09 09 09 |before))|).......|
|000042b0| 28 74 20 60 28 63 6f 6e | 64 20 28 2c 76 20 2c 40 |(t `(con|d (,v ,@|
|000042c0| 62 65 66 6f 72 65 29 20 | 28 74 20 2c 40 61 66 74 |before) |(t ,@aft|
|000042d0| 65 72 29 29 29 29 0d 09 | 09 09 09 20 20 6c 6f 6f |er))))..|... loo|
|000042e0| 70 2d 62 6f 64 79 29 29 | 29 29 0d 0d 0d 28 64 65 |p-body))|))...(de|
|000042f0| 66 75 6e 20 6c 6f 6f 70 | 2d 74 72 61 6e 73 6c 61 |fun loop|-transla|
|00004300| 74 65 2d 31 20 28 6c 6f | 6f 70 2d 73 6f 75 72 63 |te-1 (lo|op-sourc|
|00004310| 65 2d 63 6f 64 65 2d 66 | 6f 72 6d 29 0d 20 20 28 |e-code-f|orm). (|
|00004320| 6c 65 74 20 28 28 6c 6f | 6f 70 2d 73 6f 75 72 63 |let ((lo|op-sourc|
|00004330| 65 2d 63 6f 64 65 20 6c | 6f 6f 70 2d 73 6f 75 72 |e-code l|oop-sour|
|00004340| 63 65 2d 63 6f 64 65 2d | 66 6f 72 6d 29 29 0d 20 |ce-code-|form)). |
|00004350| 20 28 61 6e 64 20 28 65 | 71 20 28 63 61 72 20 6c | (and (e|q (car l|
|00004360| 6f 6f 70 2d 73 6f 75 72 | 63 65 2d 63 6f 64 65 29 |oop-sour|ce-code)|
|00004370| 20 27 6c 6f 6f 70 29 0d | 09 20 20 20 28 73 65 74 | 'loop).|. (set|
|00004380| 71 20 6c 6f 6f 70 2d 73 | 6f 75 72 63 65 2d 63 6f |q loop-s|ource-co|
|00004390| 64 65 20 28 63 64 72 20 | 6c 6f 6f 70 2d 73 6f 75 |de (cdr |loop-sou|
|000043a0| 72 63 65 2d 63 6f 64 65 | 29 29 29 0d 20 20 28 64 |rce-code|))). (d|
|000043b0| 6f 20 28 28 6c 6f 6f 70 | 2d 69 74 65 72 61 74 69 |o ((loop|-iterati|
|000043c0| 6f 6e 2d 76 61 72 69 61 | 62 6c 65 73 20 6e 69 6c |on-varia|bles nil|
|000043d0| 29 0d 09 20 20 20 28 6c | 6f 6f 70 2d 69 74 65 72 |).. (l|oop-iter|
|000043e0| 61 74 69 6f 6e 2d 76 61 | 72 69 61 62 6c 65 70 20 |ation-va|riablep |
|000043f0| 6e 69 6c 29 0d 09 20 20 | 20 28 6c 6f 6f 70 2d 76 |nil).. | (loop-v|
|00004400| 61 72 69 61 62 6c 65 73 | 20 6e 69 6c 29 0d 09 20 |ariables| nil).. |
|00004410| 20 20 28 6c 6f 6f 70 2d | 6e 6f 64 65 63 6c 61 72 | (loop-|nodeclar|
|00004420| 65 20 6e 69 6c 29 0d 09 | 20 20 20 28 6c 6f 6f 70 |e nil)..| (loop|
|00004430| 2d 6e 61 6d 65 64 2d 76 | 61 72 69 61 62 6c 65 73 |-named-v|ariables|
|00004440| 20 6e 69 6c 29 0d 09 20 | 20 20 28 6c 6f 6f 70 2d | nil).. | (loop-|
|00004450| 64 65 63 6c 61 72 61 74 | 69 6f 6e 73 20 6e 69 6c |declarat|ions nil|
|00004460| 29 0d 09 20 20 20 28 6c | 6f 6f 70 2d 64 65 73 65 |).. (l|oop-dese|
|00004470| 74 71 2d 63 72 6f 63 6b | 73 20 6e 69 6c 29 0d 09 |tq-crock|s nil)..|
|00004480| 20 20 20 28 6c 6f 6f 70 | 2d 76 61 72 69 61 62 6c | (loop|-variabl|
|00004490| 65 2d 73 74 61 63 6b 20 | 6e 69 6c 29 0d 09 20 20 |e-stack |nil).. |
|000044a0| 20 28 6c 6f 6f 70 2d 64 | 65 63 6c 61 72 61 74 69 | (loop-d|eclarati|
|000044b0| 6f 6e 2d 73 74 61 63 6b | 20 6e 69 6c 29 0d 09 20 |on-stack| nil).. |
|000044c0| 20 20 28 6c 6f 6f 70 2d | 64 65 73 65 74 71 2d 73 | (loop-|desetq-s|
|000044d0| 74 61 63 6b 20 6e 69 6c | 29 0d 09 20 20 20 28 6c |tack nil|).. (l|
|000044e0| 6f 6f 70 2d 70 72 6f 6c | 6f 67 75 65 20 6e 69 6c |oop-prol|ogue nil|
|000044f0| 29 0d 09 20 20 20 28 6c | 6f 6f 70 2d 77 72 61 70 |).. (l|oop-wrap|
|00004500| 70 65 72 73 20 6e 69 6c | 29 0d 09 20 20 20 28 6c |pers nil|).. (l|
|00004510| 6f 6f 70 2d 62 65 66 6f | 72 65 2d 6c 6f 6f 70 20 |oop-befo|re-loop |
|00004520| 6e 69 6c 29 0d 09 20 20 | 20 28 6c 6f 6f 70 2d 62 |nil).. | (loop-b|
|00004530| 6f 64 79 20 6e 69 6c 29 | 0d 09 20 20 20 28 6c 6f |ody nil)|.. (lo|
|00004540| 6f 70 2d 65 6d 69 74 74 | 65 64 2d 62 6f 64 79 3f |op-emitt|ed-body?|
|00004550| 20 6e 69 6c 29 0d 09 20 | 20 20 28 6c 6f 6f 70 2d | nil).. | (loop-|
|00004560| 61 66 74 65 72 2d 62 6f | 64 79 20 6e 69 6c 29 0d |after-bo|dy nil).|
|00004570| 09 20 20 20 28 6c 6f 6f | 70 2d 65 70 69 6c 6f 67 |. (loo|p-epilog|
|00004580| 75 65 20 6e 69 6c 29 0d | 09 20 20 20 28 6c 6f 6f |ue nil).|. (loo|
|00004590| 70 2d 61 66 74 65 72 2d | 65 70 69 6c 6f 67 75 65 |p-after-|epilogue|
|000045a0| 20 6e 69 6c 29 0d 09 20 | 20 20 28 6c 6f 6f 70 2d | nil).. | (loop-|
|000045b0| 63 6f 6e 64 69 74 69 6f | 6e 61 6c 73 20 6e 69 6c |conditio|nals nil|
|000045c0| 29 0d 09 20 20 20 28 6c | 6f 6f 70 2d 77 68 65 6e |).. (l|oop-when|
|000045d0| 2d 69 74 2d 76 61 72 69 | 61 62 6c 65 20 6e 69 6c |-it-vari|able nil|
|000045e0| 29 0d 09 20 20 20 28 6c | 6f 6f 70 2d 6e 65 76 65 |).. (l|oop-neve|
|000045f0| 72 2d 73 74 65 70 70 65 | 64 2d 76 61 72 69 61 62 |r-steppe|d-variab|
|00004600| 6c 65 20 6e 69 6c 29 0d | 09 20 20 20 28 6c 6f 6f |le nil).|. (loo|
|00004610| 70 2d 64 65 73 65 74 71 | 2d 74 65 6d 70 6f 72 61 |p-desetq|-tempora|
|00004620| 72 79 20 6e 69 6c 29 0d | 09 20 20 20 28 6c 6f 6f |ry nil).|. (loo|
|00004630| 70 2d 70 72 6f 67 2d 6e | 61 6d 65 73 20 6e 69 6c |p-prog-n|ames nil|
|00004640| 29 0d 09 20 20 20 28 6c | 6f 6f 70 2d 63 6f 6c 6c |).. (l|oop-coll|
|00004650| 65 63 74 2d 63 72 75 66 | 74 20 6e 69 6c 29 0d 09 |ect-cruf|t nil)..|
|00004660| 20 20 20 28 6b 65 79 77 | 6f 72 64 29 0d 09 20 20 | (keyw|ord).. |
|00004670| 20 28 74 65 6d 29 0d 09 | 20 20 20 28 70 72 6f 67 | (tem)..| (prog|
|00004680| 76 61 72 73 29 29 0d 09 | 20 20 28 28 6e 75 6c 6c |vars))..| ((null|
|00004690| 20 6c 6f 6f 70 2d 73 6f | 75 72 63 65 2d 63 6f 64 | loop-so|urce-cod|
|000046a0| 65 29 0d 09 20 20 20 28 | 61 6e 64 20 6c 6f 6f 70 |e).. (|and loop|
|000046b0| 2d 63 6f 6e 64 69 74 69 | 6f 6e 61 6c 73 0d 09 09 |-conditi|onals...|
|000046c0| 09 28 6c 6f 6f 70 2d 73 | 69 6d 70 6c 65 2d 65 72 |.(loop-s|imple-er|
|000046d0| 72 6f 72 20 22 48 61 6e | 67 69 6e 67 20 63 6f 6e |ror "Han|ging con|
|000046e0| 64 69 74 69 6f 6e 61 6c | 20 69 6e 20 6c 6f 6f 70 |ditional| in loop|
|000046f0| 20 6d 61 63 72 6f 22 0d | 09 09 09 09 09 09 09 20 | macro".|....... |
|00004700| 20 20 28 63 61 61 64 61 | 72 20 6c 6f 6f 70 2d 63 | (caada|r loop-c|
|00004710| 6f 6e 64 69 74 69 6f 6e | 61 6c 73 29 29 29 0d 09 |ondition|als)))..|
|00004720| 20 20 20 28 6c 6f 6f 70 | 2d 6f 70 74 69 6d 69 7a | (loop|-optimiz|
|00004730| 65 2d 64 75 70 6c 69 63 | 61 74 65 64 2d 63 6f 64 |e-duplic|ated-cod|
|00004740| 65 2d 65 74 63 29 0d 09 | 20 20 20 28 6c 6f 6f 70 |e-etc)..| (loop|
|00004750| 2d 62 69 6e 64 2d 62 6c | 6f 63 6b 29 0d 09 20 20 |-bind-bl|ock).. |
|00004760| 20 28 61 6e 64 20 6c 6f | 6f 70 2d 64 65 73 65 74 | (and lo|op-deset|
|00004770| 71 2d 74 65 6d 70 6f 72 | 61 72 79 20 28 70 75 73 |q-tempor|ary (pus|
|00004780| 68 20 6c 6f 6f 70 2d 64 | 65 73 65 74 71 2d 74 65 |h loop-d|esetq-te|
|00004790| 6d 70 6f 72 61 72 79 20 | 70 72 6f 67 76 61 72 73 |mporary |progvars|
|000047a0| 29 29 0d 09 20 20 20 28 | 73 65 74 71 20 74 65 6d |)).. (|setq tem|
|000047b0| 20 60 28 62 6c 6f 63 6b | 20 2c 28 63 61 72 20 6c | `(block| ,(car l|
|000047c0| 6f 6f 70 2d 70 72 6f 67 | 2d 6e 61 6d 65 73 29 0d |oop-prog|-names).|
|000047d0| 09 09 09 09 09 28 6c 65 | 74 20 2c 70 72 6f 67 76 |.....(le|t ,progv|
|000047e0| 61 72 73 0d 09 09 09 09 | 09 20 20 28 74 61 67 62 |ars.....|. (tagb|
|000047f0| 6f 64 79 0d 09 09 09 09 | 09 09 2c 40 28 6e 72 65 |ody.....|..,@(nre|
|00004800| 76 65 72 73 65 20 6c 6f | 6f 70 2d 70 72 6f 6c 6f |verse lo|op-prolo|
|00004810| 67 75 65 29 0d 09 09 09 | 09 09 09 2c 40 6c 6f 6f |gue)....|...,@loo|
|00004820| 70 2d 62 65 66 6f 72 65 | 2d 6c 6f 6f 70 0d 09 09 |p-before|-loop...|
|00004830| 09 09 09 20 6e 65 78 74 | 2d 6c 6f 6f 70 0d 09 09 |... next|-loop...|
|00004840| 09 09 09 09 2c 40 6c 6f | 6f 70 2d 62 6f 64 79 0d |....,@lo|op-body.|
|00004850| 09 09 09 09 09 09 2c 40 | 6c 6f 6f 70 2d 61 66 74 |......,@|loop-aft|
|00004860| 65 72 2d 62 6f 64 79 0d | 09 09 09 09 09 09 28 67 |er-body.|......(g|
|00004870| 6f 20 6e 65 78 74 2d 6c | 6f 6f 70 29 0d 09 09 09 |o next-l|oop)....|
|00004880| 09 09 09 28 67 6f 20 65 | 6e 64 2d 6c 6f 6f 70 29 |...(go e|nd-loop)|
|00004890| 0d 09 09 09 09 09 20 65 | 6e 64 2d 6c 6f 6f 70 0d |...... e|nd-loop.|
|000048a0| 09 09 09 09 09 09 2c 40 | 28 6e 72 65 76 65 72 73 |......,@|(nrevers|
|000048b0| 65 20 6c 6f 6f 70 2d 65 | 70 69 6c 6f 67 75 65 29 |e loop-e|pilogue)|
|000048c0| 0d 09 09 09 09 09 09 2c | 40 28 6e 72 65 76 65 72 |.......,|@(nrever|
|000048d0| 73 65 20 6c 6f 6f 70 2d | 61 66 74 65 72 2d 65 70 |se loop-|after-ep|
|000048e0| 69 6c 6f 67 75 65 29 29 | 29 29 29 0d 09 20 20 20 |ilogue))|))).. |
|000048f0| 28 64 6f 20 28 28 76 61 | 72 73 29 20 28 64 63 6c |(do ((va|rs) (dcl|
|00004900| 73 29 20 28 63 72 6f 63 | 6b 73 29 29 0d 09 09 20 |s) (croc|ks))... |
|00004910| 20 20 28 28 6e 75 6c 6c | 20 6c 6f 6f 70 2d 76 61 | ((null| loop-va|
|00004920| 72 69 61 62 6c 65 2d 73 | 74 61 63 6b 29 29 0d 09 |riable-s|tack))..|
|00004930| 09 20 28 73 65 74 71 20 | 76 61 72 73 20 28 63 61 |. (setq |vars (ca|
|00004940| 72 20 6c 6f 6f 70 2d 76 | 61 72 69 61 62 6c 65 2d |r loop-v|ariable-|
|00004950| 73 74 61 63 6b 29 0d 09 | 09 09 20 20 20 6c 6f 6f |stack)..|.. loo|
|00004960| 70 2d 76 61 72 69 61 62 | 6c 65 2d 73 74 61 63 6b |p-variab|le-stack|
|00004970| 20 28 63 64 72 20 6c 6f | 6f 70 2d 76 61 72 69 61 | (cdr lo|op-varia|
|00004980| 62 6c 65 2d 73 74 61 63 | 6b 29 0d 09 09 09 20 20 |ble-stac|k).... |
|00004990| 20 64 63 6c 73 20 28 63 | 61 72 20 6c 6f 6f 70 2d | dcls (c|ar loop-|
|000049a0| 64 65 63 6c 61 72 61 74 | 69 6f 6e 2d 73 74 61 63 |declarat|ion-stac|
|000049b0| 6b 29 0d 09 09 09 20 20 | 20 6c 6f 6f 70 2d 64 65 |k).... | loop-de|
|000049c0| 63 6c 61 72 61 74 69 6f | 6e 2d 73 74 61 63 6b 20 |claratio|n-stack |
|000049d0| 28 63 64 72 20 6c 6f 6f | 70 2d 64 65 63 6c 61 72 |(cdr loo|p-declar|
|000049e0| 61 74 69 6f 6e 2d 73 74 | 61 63 6b 29 0d 09 09 09 |ation-st|ack)....|
|000049f0| 20 20 20 74 65 6d 20 28 | 6c 69 73 74 20 74 65 6d | tem (|list tem|
|00004a00| 29 29 0d 09 09 20 28 61 | 6e 64 20 28 73 65 74 71 |))... (a|nd (setq|
|00004a10| 20 63 72 6f 63 6b 73 20 | 28 70 6f 70 20 6c 6f 6f | crocks |(pop loo|
|00004a20| 70 2d 64 65 73 65 74 71 | 2d 73 74 61 63 6b 29 29 |p-desetq|-stack))|
|00004a30| 0d 09 09 09 20 20 28 70 | 75 73 68 20 28 6c 6f 6f |.... (p|ush (loo|
|00004a40| 70 2d 6d 61 6b 65 2d 64 | 65 73 65 74 71 20 63 72 |p-make-d|esetq cr|
|00004a50| 6f 63 6b 73 29 20 74 65 | 6d 29 29 0d 09 09 20 28 |ocks) te|m))... (|
|00004a60| 61 6e 64 20 64 63 6c 73 | 20 28 70 75 73 68 20 28 |and dcls| (push (|
|00004a70| 63 6f 6e 73 20 27 64 65 | 63 6c 61 72 65 20 64 63 |cons 'de|clare dc|
|00004a80| 6c 73 29 20 74 65 6d 29 | 29 0d 09 09 20 28 63 6f |ls) tem)|)... (co|
|00004a90| 6e 64 20 28 28 64 6f 20 | 28 28 6c 20 76 61 72 73 |nd ((do |((l vars|
|00004aa0| 20 28 63 64 72 20 6c 29 | 29 29 20 28 28 6e 75 6c | (cdr l)|)) ((nul|
|00004ab0| 6c 20 6c 29 20 6e 69 6c | 29 0d 09 09 09 09 20 20 |l l) nil|)..... |
|00004ac0| 28 61 6e 64 20 28 6e 6f | 74 20 28 61 74 6f 6d 20 |(and (no|t (atom |
|00004ad0| 28 63 61 72 20 6c 29 29 | 29 0d 09 09 09 09 09 20 |(car l))|)...... |
|00004ae0| 20 20 28 6f 72 20 28 6e | 75 6c 6c 20 28 63 61 61 | (or (n|ull (caa|
|00004af0| 72 20 6c 29 29 20 28 6e | 6f 74 20 28 73 79 6d 62 |r l)) (n|ot (symb|
|00004b00| 6f 6c 70 20 28 63 61 61 | 72 20 6c 29 29 29 29 0d |olp (caa|r l)))).|
|00004b10| 09 09 09 09 09 20 20 20 | 28 72 65 74 75 72 6e 20 |..... |(return |
|00004b20| 74 29 29 29 0d 09 09 09 | 09 20 20 28 73 65 74 71 |t)))....|. (setq|
|00004b30| 20 74 65 6d 20 60 28 6c | 65 74 20 2c 28 6e 72 65 | tem `(l|et ,(nre|
|00004b40| 76 65 72 73 65 20 76 61 | 72 73 29 20 2c 40 74 65 |verse va|rs) ,@te|
|00004b50| 6d 29 29 29 0d 09 09 09 | 20 20 20 28 74 20 28 6c |m)))....| (t (l|
|00004b60| 65 74 20 28 28 6c 61 6d | 62 64 61 2d 76 61 72 73 |et ((lam|bda-vars|
|00004b70| 20 6e 69 6c 29 20 28 6c | 61 6d 62 64 61 2d 76 61 | nil) (l|ambda-va|
|00004b80| 6c 73 20 6e 69 6c 29 29 | 0d 09 09 09 09 09 28 64 |ls nil))|......(d|
|00004b90| 6f 20 28 28 6c 20 76 61 | 72 73 20 28 63 64 72 20 |o ((l va|rs (cdr |
|00004ba0| 6c 29 29 20 28 76 29 29 | 20 28 28 6e 75 6c 6c 20 |l)) (v))| ((null |
|00004bb0| 6c 29 29 0d 09 09 09 09 | 09 20 20 28 63 6f 6e 64 |l)).....|. (cond|
|00004bc0| 20 28 28 61 74 6f 6d 20 | 28 73 65 74 71 20 76 20 | ((atom |(setq v |
|00004bd0| 28 63 61 72 20 6c 29 29 | 29 0d 09 09 09 09 09 09 |(car l))|).......|
|00004be0| 09 20 20 20 28 70 75 73 | 68 20 76 20 6c 61 6d 62 |. (pus|h v lamb|
|00004bf0| 64 61 2d 76 61 72 73 29 | 0d 09 09 09 09 09 09 09 |da-vars)|........|
|00004c00| 20 20 20 28 70 75 73 68 | 20 6e 69 6c 20 6c 61 6d | (push| nil lam|
|00004c10| 62 64 61 2d 76 61 6c 73 | 29 29 0d 09 09 09 09 09 |bda-vals|))......|
|00004c20| 09 09 28 74 20 28 70 75 | 73 68 20 28 63 61 72 20 |..(t (pu|sh (car |
|00004c30| 76 29 20 6c 61 6d 62 64 | 61 2d 76 61 72 73 29 0d |v) lambd|a-vars).|
|00004c40| 09 09 09 09 09 09 09 20 | 20 20 28 70 75 73 68 20 |....... | (push |
|00004c50| 28 63 61 64 72 20 76 29 | 20 6c 61 6d 62 64 61 2d |(cadr v)| lambda-|
|00004c60| 76 61 6c 73 29 29 29 29 | 0d 09 09 09 09 09 28 73 |vals))))|......(s|
|00004c70| 65 74 71 20 74 65 6d 20 | 60 28 28 6c 61 6d 62 64 |etq tem |`((lambd|
|00004c80| 61 20 2c 6c 61 6d 62 64 | 61 2d 76 61 72 73 20 2c |a ,lambd|a-vars ,|
|00004c90| 40 74 65 6d 29 0d 09 09 | 09 09 09 09 09 09 2c 40 |@tem)...|......,@|
|00004ca0| 6c 61 6d 62 64 61 2d 76 | 61 6c 73 29 29 29 29 29 |lambda-v|als)))))|
|00004cb0| 29 0d 09 20 20 20 28 64 | 6f 20 28 28 6c 20 6c 6f |).. (d|o ((l lo|
|00004cc0| 6f 70 2d 77 72 61 70 70 | 65 72 73 20 28 63 64 72 |op-wrapp|ers (cdr|
|00004cd0| 20 6c 29 29 29 20 28 28 | 6e 75 6c 6c 20 6c 29 29 | l))) ((|null l))|
|00004ce0| 0d 09 09 20 28 73 65 74 | 71 20 74 65 6d 20 28 61 |... (set|q tem (a|
|00004cf0| 70 70 65 6e 64 20 28 63 | 61 72 20 6c 29 20 28 6c |ppend (c|ar l) (l|
|00004d00| 69 73 74 20 74 65 6d 29 | 29 29 29 0d 09 20 20 20 |ist tem)|))).. |
|00004d10| 74 65 6d 29 0d 09 3b 3b | 54 68 65 20 66 6f 6c 6c |tem)..;;|The foll|
|00004d20| 6f 77 69 6e 67 20 63 6f | 6d 6d 65 6e 74 65 64 2d |owing co|mmented-|
|00004d30| 6f 75 74 20 63 6f 64 65 | 20 69 73 20 77 68 61 74 |out code| is what|
|00004d40| 20 63 6f 6d 65 73 20 66 | 72 6f 6d 20 74 68 65 20 | comes f|rom the |
|00004d50| 6e 65 77 65 73 74 20 73 | 6f 75 72 63 65 0d 09 3b |newest s|ource..;|
|00004d60| 3b 20 63 6f 64 65 20 69 | 6e 20 75 73 65 20 69 6e |; code i|n use in|
|00004d70| 20 4e 49 4c 2e 09 54 68 | 65 20 63 6f 64 65 20 69 | NIL..Th|e code i|
|00004d80| 6e 20 75 73 65 20 66 6f | 6c 6c 6f 77 69 6e 67 20 |n use fo|llowing |
|00004d90| 69 74 20 63 6f 6d 65 73 | 20 66 72 6f 6d 20 61 62 |it comes| from ab|
|00004da0| 6f 75 74 20 76 65 72 73 | 69 6f 6e 0d 09 3b 3b 20 |out vers|ion..;; |
|00004db0| 38 30 33 2c 20 74 68 61 | 74 20 69 6e 20 75 73 65 |803, tha|t in use|
|00004dc0| 20 69 6e 20 73 79 6d 62 | 6f 6c 69 63 73 20 72 65 | in symb|olics re|
|00004dd0| 6c 65 61 73 65 20 36 2e | 31 2c 20 66 6f 72 20 69 |lease 6.|1, for i|
|00004de0| 6e 73 74 61 6e 63 65 2e | 09 20 54 6f 20 74 75 72 |nstance.|. To tur|
|00004df0| 6e 20 6f 6e 20 74 68 65 | 0d 09 3b 3b 20 69 6d 70 |n on the|..;; imp|
|00004e00| 6c 69 63 69 74 20 44 4f | 20 66 65 61 74 75 72 65 |licit DO| feature|
|00004e10| 2c 20 73 77 69 74 63 68 | 20 74 68 65 6d 20 61 6e |, switch| them an|
|00004e20| 64 20 66 69 78 20 6c 6f | 6f 70 2d 67 65 74 2d 66 |d fix lo|op-get-f|
|00004e30| 6f 72 6d 20 74 6f 20 6a | 75 73 74 20 70 6f 70 20 |orm to j|ust pop |
|00004e40| 74 68 65 20 73 6f 75 72 | 63 65 2e 0d 09 28 69 66 |the sour|ce...(if|
|00004e50| 20 28 73 79 6d 62 6f 6c | 70 20 28 73 65 74 71 20 | (symbol|p (setq |
|00004e60| 6b 65 79 77 6f 72 64 20 | 28 63 61 72 20 6c 6f 6f |keyword |(car loo|
|00004e70| 70 2d 73 6f 75 72 63 65 | 2d 63 6f 64 65 29 29 29 |p-source|-code)))|
|00004e80| 0d 09 09 28 6c 6f 6f 70 | 2d 70 6f 70 2d 73 6f 75 |...(loop|-pop-sou|
|00004e90| 72 63 65 29 0d 09 20 20 | 28 73 65 74 71 20 6b 65 |rce).. |(setq ke|
|00004ea0| 79 77 6f 72 64 20 27 64 | 6f 29 29 0d 09 28 69 66 |yword 'd|o))..(if|
|00004eb0| 20 28 73 65 74 71 20 74 | 65 6d 20 28 6c 6f 6f 70 | (setq t|em (loop|
|00004ec0| 2d 74 61 73 73 6f 63 20 | 6b 65 79 77 6f 72 64 20 |-tassoc |keyword |
|00004ed0| 6c 6f 6f 70 2d 6b 65 79 | 77 6f 72 64 2d 61 6c 69 |loop-key|word-ali|
|00004ee0| 73 74 29 29 0d 09 09 28 | 61 70 70 6c 79 20 28 63 |st))...(|apply (c|
|00004ef0| 61 64 72 20 74 65 6d 29 | 20 28 63 64 64 72 20 74 |adr tem)| (cddr t|
|00004f00| 65 6d 29 29 0d 09 09 28 | 69 66 20 28 73 65 74 71 |em))...(|if (setq|
|00004f10| 20 74 65 6d 20 28 6c 6f | 6f 70 2d 74 61 73 73 6f | tem (lo|op-tasso|
|00004f20| 63 0d 09 09 09 09 09 09 | 20 6b 65 79 77 6f 72 64 |c.......| keyword|
|00004f30| 20 6c 6f 6f 70 2d 69 74 | 65 72 61 74 69 6f 6e 2d | loop-it|eration-|
|00004f40| 6b 65 79 77 6f 72 64 2d | 61 6c 69 73 74 29 29 0d |keyword-|alist)).|
|00004f50| 09 09 09 28 6c 6f 6f 70 | 2d 68 61 63 6b 2d 69 74 |...(loop|-hack-it|
|00004f60| 65 72 61 74 69 6f 6e 20 | 74 65 6d 29 0d 09 09 09 |eration |tem)....|
|00004f70| 28 69 66 20 28 6c 6f 6f | 70 2d 74 6d 65 6d 62 65 |(if (loo|p-tmembe|
|00004f80| 72 20 6b 65 79 77 6f 72 | 64 20 27 28 61 6e 64 20 |r keywor|d '(and |
|00004f90| 65 6c 73 65 29 29 0d 09 | 09 09 09 3b 20 41 6c 74 |else))..|...; Alt|
|00004fa0| 65 72 6e 61 74 69 76 65 | 20 69 73 20 74 6f 20 69 |ernative| is to i|
|00004fb0| 67 6e 6f 72 65 20 69 74 | 2c 20 69 65 20 6c 65 74 |gnore it|, ie let|
|00004fc0| 20 69 74 20 67 6f 20 61 | 72 6f 75 6e 64 20 74 6f | it go a|round to|
|00004fd0| 20 74 68 65 0d 09 09 09 | 09 3b 20 6e 65 78 74 20 | the....|.; next |
|00004fe0| 6b 65 79 77 6f 72 64 2e | 2e 2e 0d 09 09 09 09 28 |keyword.|.......(|
|00004ff0| 6c 6f 6f 70 2d 73 69 6d | 70 6c 65 2d 65 72 72 6f |loop-sim|ple-erro|
|00005000| 72 0d 09 09 09 09 20 20 | 20 22 73 65 63 6f 6e 64 |r..... | "second|
|00005010| 61 72 79 20 63 6c 61 75 | 73 65 20 6d 69 73 70 6c |ary clau|se mispl|
|00005020| 61 63 65 64 20 61 74 20 | 74 6f 70 20 6c 65 76 65 |aced at |top leve|
|00005030| 6c 20 69 6e 20 4c 4f 4f | 50 20 6d 61 63 72 6f 22 |l in LOO|P macro"|
|00005040| 0d 09 09 09 09 20 20 20 | 28 6c 69 73 74 20 6b 65 |..... |(list ke|
|00005050| 79 77 6f 72 64 20 28 63 | 61 72 20 6c 6f 6f 70 2d |yword (c|ar loop-|
|00005060| 73 6f 75 72 63 65 2d 63 | 6f 64 65 29 0d 09 09 09 |source-c|ode)....|
|00005070| 09 09 09 20 28 63 61 64 | 72 20 6c 6f 6f 70 2d 73 |... (cad|r loop-s|
|00005080| 6f 75 72 63 65 2d 63 6f | 64 65 29 29 29 0d 09 09 |ource-co|de)))...|
|00005090| 09 09 28 6c 6f 6f 70 2d | 73 69 6d 70 6c 65 2d 65 |..(loop-|simple-e|
|000050a0| 72 72 6f 72 0d 09 09 09 | 09 20 20 20 22 75 6e 6b |rror....|. "unk|
|000050b0| 6e 6f 77 6e 20 6b 65 79 | 77 6f 72 64 20 69 6e 20 |nown key|word in |
|000050c0| 4c 4f 4f 50 20 6d 61 63 | 72 6f 22 20 6b 65 79 77 |LOOP mac|ro" keyw|
|000050d0| 6f 72 64 29 29 29 29 0d | 29 29 29 0d 0d 0d 28 64 |ord)))).|)))...(d|
|000050e0| 65 66 75 6e 20 6c 6f 6f | 70 2d 62 69 6e 64 2d 62 |efun loo|p-bind-b|
|000050f0| 6c 6f 63 6b 20 28 29 0d | 20 20 20 28 63 6f 6e 64 |lock ().| (cond|
|00005100| 20 28 28 6e 6f 74 20 28 | 6e 75 6c 6c 20 6c 6f 6f | ((not (|null loo|
|00005110| 70 2d 76 61 72 69 61 62 | 6c 65 73 29 29 0d 09 09 |p-variab|les))...|
|00005120| 09 28 70 75 73 68 20 6c | 6f 6f 70 2d 76 61 72 69 |.(push l|oop-vari|
|00005130| 61 62 6c 65 73 20 6c 6f | 6f 70 2d 76 61 72 69 61 |ables lo|op-varia|
|00005140| 62 6c 65 2d 73 74 61 63 | 6b 29 0d 09 09 09 28 70 |ble-stac|k)....(p|
|00005150| 75 73 68 20 6c 6f 6f 70 | 2d 64 65 63 6c 61 72 61 |ush loop|-declara|
|00005160| 74 69 6f 6e 73 20 6c 6f | 6f 70 2d 64 65 63 6c 61 |tions lo|op-decla|
|00005170| 72 61 74 69 6f 6e 2d 73 | 74 61 63 6b 29 0d 09 09 |ration-s|tack)...|
|00005180| 09 28 73 65 74 71 20 6c | 6f 6f 70 2d 76 61 72 69 |.(setq l|oop-vari|
|00005190| 61 62 6c 65 73 20 6e 69 | 6c 20 6c 6f 6f 70 2d 64 |ables ni|l loop-d|
|000051a0| 65 63 6c 61 72 61 74 69 | 6f 6e 73 20 6e 69 6c 29 |eclarati|ons nil)|
|000051b0| 0d 09 09 09 28 70 75 73 | 68 20 6c 6f 6f 70 2d 64 |....(pus|h loop-d|
|000051c0| 65 73 65 74 71 2d 63 72 | 6f 63 6b 73 20 6c 6f 6f |esetq-cr|ocks loo|
|000051d0| 70 2d 64 65 73 65 74 71 | 2d 73 74 61 63 6b 29 0d |p-desetq|-stack).|
|000051e0| 09 09 09 28 73 65 74 71 | 20 6c 6f 6f 70 2d 64 65 |...(setq| loop-de|
|000051f0| 73 65 74 71 2d 63 72 6f | 63 6b 73 20 6e 69 6c 29 |setq-cro|cks nil)|
|00005200| 29 29 29 0d 0d 0d 3b 47 | 65 74 20 46 4f 52 4d 20 |)))...;G|et FORM |
|00005210| 61 72 67 75 6d 65 6e 74 | 20 74 6f 20 61 20 6b 65 |argument| to a ke|
|00005220| 79 77 6f 72 64 2e 20 20 | 52 65 61 64 20 75 70 20 |yword. |Read up |
|00005230| 74 6f 20 61 74 6f 6d 2e | 09 50 52 4f 47 4e 69 66 |to atom.|.PROGNif|
|00005240| 79 20 69 66 20 6e 65 63 | 65 73 73 61 72 79 2e 0d |y if nec|essary..|
|00005250| 28 64 65 66 75 6e 20 6c | 6f 6f 70 2d 67 65 74 2d |(defun l|oop-get-|
|00005260| 70 72 6f 67 6e 2d 31 20 | 28 29 0d 20 20 28 64 6f |progn-1 |(). (do|
|00005270| 20 28 28 66 6f 72 6d 73 | 20 28 6c 69 73 74 20 28 | ((forms| (list (|
|00005280| 6c 6f 6f 70 2d 70 6f 70 | 2d 73 6f 75 72 63 65 29 |loop-pop|-source)|
|00005290| 29 20 28 63 6f 6e 73 20 | 28 6c 6f 6f 70 2d 70 6f |) (cons |(loop-po|
|000052a0| 70 2d 73 6f 75 72 63 65 | 29 20 66 6f 72 6d 73 29 |p-source|) forms)|
|000052b0| 29 0d 09 20 20 20 28 6e | 65 78 74 66 6f 72 6d 20 |).. (n|extform |
|000052c0| 28 63 61 72 20 6c 6f 6f | 70 2d 73 6f 75 72 63 65 |(car loo|p-source|
|000052d0| 2d 63 6f 64 65 29 20 28 | 63 61 72 20 6c 6f 6f 70 |-code) (|car loop|
|000052e0| 2d 73 6f 75 72 63 65 2d | 63 6f 64 65 29 29 29 0d |-source-|code))).|
|000052f0| 09 20 20 28 28 61 74 6f | 6d 20 6e 65 78 74 66 6f |. ((ato|m nextfo|
|00005300| 72 6d 29 20 28 6e 72 65 | 76 65 72 73 65 20 66 6f |rm) (nre|verse fo|
|00005310| 72 6d 73 29 29 29 29 0d | 0d 28 64 65 66 75 6e 20 |rms)))).|.(defun |
|00005320| 6c 6f 6f 70 2d 67 65 74 | 2d 70 72 6f 67 6e 20 28 |loop-get|-progn (|
|00005330| 29 0d 20 20 28 6c 65 74 | 20 28 28 66 6f 72 6d 73 |). (let| ((forms|
|00005340| 20 28 6c 6f 6f 70 2d 67 | 65 74 2d 70 72 6f 67 6e | (loop-g|et-progn|
|00005350| 2d 31 29 29 29 0d 09 28 | 69 66 20 28 6e 75 6c 6c |-1)))..(|if (null|
|00005360| 20 28 63 64 72 20 66 6f | 72 6d 73 29 29 20 28 63 | (cdr fo|rms)) (c|
|00005370| 61 72 20 66 6f 72 6d 73 | 29 20 28 63 6f 6e 73 20 |ar forms|) (cons |
|00005380| 27 70 72 6f 67 6e 20 66 | 6f 72 6d 73 29 29 29 29 |'progn f|orms))))|
|00005390| 0d 0d 28 64 65 66 75 6e | 20 6c 6f 6f 70 2d 67 65 |..(defun| loop-ge|
|000053a0| 74 2d 66 6f 72 6d 20 28 | 66 6f 72 29 0d 20 20 3b |t-form (|for). ;|
|000053b0| 3b 20 55 6e 74 69 6c 20 | 69 6d 70 6c 69 63 69 74 |; Until |implicit|
|000053c0| 20 44 4f 20 69 73 20 69 | 6e 73 74 61 6c 6c 65 64 | DO is i|nstalled|
|000053d0| 2c 20 75 73 65 20 74 68 | 65 20 66 6f 6c 6c 6f 77 |, use th|e follow|
|000053e0| 69 6e 67 2e 09 20 54 68 | 65 6e 2c 20 72 65 70 6c |ing.. Th|en, repl|
|000053f0| 61 63 65 20 69 74 20 77 | 69 74 68 0d 20 20 3b 3b |ace it w|ith. ;;|
|00005400| 20 6a 75 73 74 20 6c 6f | 6f 70 2d 70 6f 70 2d 73 | just lo|op-pop-s|
|00005410| 6f 75 72 63 65 2e 0d 20 | 20 28 6c 65 74 20 28 28 |ource.. | (let ((|
|00005420| 66 6f 72 6d 73 20 28 6c | 6f 6f 70 2d 67 65 74 2d |forms (l|oop-get-|
|00005430| 70 72 6f 67 6e 2d 31 29 | 29 29 0d 09 28 63 6f 6e |progn-1)|))..(con|
|00005440| 64 20 28 28 6e 75 6c 6c | 20 28 63 64 72 20 66 6f |d ((null| (cdr fo|
|00005450| 72 6d 73 29 29 20 28 63 | 61 72 20 66 6f 72 6d 73 |rms)) (c|ar forms|
|00005460| 29 29 0d 09 09 20 20 28 | 74 20 28 6c 6f 6f 70 2d |))... (|t (loop-|
|00005470| 77 61 72 6e 20 0d 22 54 | 68 65 20 75 73 65 20 6f |warn ."T|he use o|
|00005480| 66 20 6d 75 6c 74 69 70 | 6c 65 20 66 6f 72 6d 73 |f multip|le forms|
|00005490| 20 77 69 74 68 20 61 6e | 20 69 6d 70 6c 69 63 69 | with an| implici|
|000054a0| 74 20 50 52 4f 47 4e 20 | 69 6e 20 74 68 69 73 20 |t PROGN |in this |
|000054b0| 63 6f 6e 74 65 78 74 0d | 69 73 20 63 6f 6e 73 69 |context.|is consi|
|000054c0| 64 65 72 65 64 20 6f 62 | 73 6f 6c 65 74 65 2c 20 |dered ob|solete, |
|000054d0| 62 75 74 20 69 73 20 73 | 74 69 6c 6c 20 73 75 70 |but is s|till sup|
|000054e0| 70 6f 72 74 65 64 20 66 | 6f 72 20 74 68 65 20 74 |ported f|or the t|
|000054f0| 69 6d 65 20 62 65 69 6e | 67 2e 0d 49 66 20 79 6f |ime bein|g..If yo|
|00005500| 75 20 64 69 64 20 6e 6f | 74 20 69 6e 74 65 6e 64 |u did no|t intend|
|00005510| 20 74 6f 20 75 73 65 20 | 6d 75 6c 74 69 70 6c 65 | to use |multiple|
|00005520| 20 66 6f 72 6d 73 20 68 | 65 72 65 2c 20 79 6f 75 | forms h|ere, you|
|00005530| 20 70 72 6f 62 61 62 6c | 79 20 6f 6d 69 74 74 65 | probabl|y omitte|
|00005540| 64 20 61 20 44 4f 2e 0d | 49 66 20 74 68 65 20 75 |d a DO..|If the u|
|00005550| 73 65 20 6f 66 20 6d 75 | 6c 74 69 70 6c 65 20 66 |se of mu|ltiple f|
|00005560| 6f 72 6d 73 20 77 61 73 | 20 69 6e 74 65 6e 74 69 |orms was| intenti|
|00005570| 6f 6e 61 6c 2c 20 70 75 | 74 20 61 20 50 52 4f 47 |onal, pu|t a PROG|
|00005580| 4e 20 69 6e 20 79 6f 75 | 72 20 63 6f 64 65 2e 0d |N in you|r code..|
|00005590| 54 68 65 20 6f 66 66 65 | 6e 64 69 6e 67 20 63 6c |The offe|nding cl|
|000055a0| 61 75 73 65 22 0d 09 09 | 09 09 28 69 66 20 28 61 |ause"...|..(if (a|
|000055b0| 74 6f 6d 20 66 6f 72 29 | 20 28 63 6f 6e 73 20 66 |tom for)| (cons f|
|000055c0| 6f 72 20 66 6f 72 6d 73 | 29 20 28 61 70 70 65 6e |or forms|) (appen|
|000055d0| 64 20 66 6f 72 20 66 6f | 72 6d 73 29 29 29 0d 09 |d for fo|rms)))..|
|000055e0| 09 09 20 28 63 6f 6e 73 | 20 27 70 72 6f 67 6e 20 |.. (cons| 'progn |
|000055f0| 66 6f 72 6d 73 29 29 29 | 29 29 0d 0d 0d 3b 3b 3b |forms)))|))...;;;|
|00005600| 54 68 69 73 20 66 75 6e | 63 74 69 6f 6e 20 74 61 |This fun|ction ta|
|00005610| 6b 65 73 20 61 20 73 75 | 62 73 74 69 74 75 74 61 |kes a su|bstituta|
|00005620| 62 6c 65 20 65 78 70 72 | 65 73 73 69 6f 6e 20 63 |ble expr|ession c|
|00005630| 6f 6e 74 61 69 6e 69 6e | 67 20 67 65 6e 65 72 69 |ontainin|g generi|
|00005640| 63 20 61 72 69 74 68 6d | 65 74 69 63 0d 3b 3b 3b |c arithm|etic.;;;|
|00005650| 20 6f 66 20 73 6f 6d 65 | 20 66 6f 72 6d 20 6f 72 | of some| form or|
|00005660| 20 61 6e 6f 74 68 65 72 | 2c 20 61 6e 64 20 61 20 | another|, and a |
|00005670| 64 61 74 61 20 74 79 70 | 65 20 6e 61 6d 65 2c 20 |data typ|e name, |
|00005680| 61 6e 64 20 73 75 62 73 | 74 69 74 75 74 65 73 20 |and subs|titutes |
|00005690| 66 6f 72 20 74 68 65 20 | 66 75 6e 63 74 69 6f 6e |for the |function|
|000056a0| 0d 3b 3b 3b 20 61 6e 79 | 20 74 79 70 65 2d 73 70 |.;;; any| type-sp|
|000056b0| 65 63 69 66 69 63 20 66 | 75 6e 63 74 69 6f 6e 73 |ecific f|unctions|
|000056c0| 20 66 6f 72 20 74 68 61 | 74 20 74 79 70 65 20 69 | for tha|t type i|
|000056d0| 6e 20 74 68 65 20 69 6d | 70 6c 65 6d 65 6e 74 61 |n the im|plementa|
|000056e0| 74 69 6f 6e 2e 0d 28 64 | 65 66 75 6e 20 6c 6f 6f |tion..(d|efun loo|
|000056f0| 70 2d 74 79 70 65 64 2d | 61 72 69 74 68 20 28 73 |p-typed-|arith (s|
|00005700| 75 62 73 74 69 74 75 74 | 61 62 6c 65 2d 65 78 70 |ubstitut|able-exp|
|00005710| 72 65 73 73 69 6f 6e 20 | 64 61 74 61 2d 74 79 70 |ression |data-typ|
|00005720| 65 29 0d 20 20 28 64 65 | 63 6c 61 72 65 20 28 69 |e). (de|clare (i|
|00005730| 67 6e 6f 72 65 20 64 61 | 74 61 2d 74 79 70 65 29 |gnore da|ta-type)|
|00005740| 29 0d 20 20 73 75 62 73 | 74 69 74 75 74 61 62 6c |). subs|titutabl|
|00005750| 65 2d 65 78 70 72 65 73 | 73 69 6f 6e 29 0d 0d 28 |e-expres|sion)..(|
|00005760| 64 65 66 76 61 72 20 6c | 6f 6f 70 2d 66 6c 6f 61 |defvar l|oop-floa|
|00005770| 74 69 6e 67 2d 70 6f 69 | 6e 74 2d 74 79 70 65 73 |ting-poi|nt-types|
|00005780| 0d 09 09 27 28 66 6c 6f | 6e 75 6d 20 66 6c 6f 61 |...'(flo|num floa|
|00005790| 74 20 73 68 6f 72 74 2d | 66 6c 6f 61 74 20 73 69 |t short-|float si|
|000057a0| 6e 67 6c 65 2d 66 6c 6f | 61 74 20 64 6f 75 62 6c |ngle-flo|at doubl|
|000057b0| 65 2d 66 6c 6f 61 74 20 | 6c 6f 6e 67 2d 66 6c 6f |e-float |long-flo|
|000057c0| 61 74 29 29 0d 0d 28 64 | 65 66 75 6e 20 6c 6f 6f |at))..(d|efun loo|
|000057d0| 70 2d 74 79 70 65 64 2d | 69 6e 69 74 20 28 64 61 |p-typed-|init (da|
|000057e0| 74 61 2d 74 79 70 65 29 | 0d 20 20 28 6c 65 74 20 |ta-type)|. (let |
|000057f0| 28 28 74 65 6d 20 6e 69 | 6c 29 29 0d 09 28 63 6f |((tem ni|l))..(co|
|00005800| 6e 64 20 28 28 64 61 74 | 61 2d 74 79 70 65 3f 20 |nd ((dat|a-type? |
|00005810| 64 61 74 61 2d 74 79 70 | 65 29 20 28 69 6e 69 74 |data-typ|e) (init|
|00005820| 69 61 6c 2d 76 61 6c 75 | 65 20 64 61 74 61 2d 74 |ial-valu|e data-t|
|00005830| 79 70 65 29 29 0d 09 09 | 20 20 28 28 6c 6f 6f 70 |ype))...| ((loop|
|00005840| 2d 74 6d 65 6d 62 65 72 | 20 64 61 74 61 2d 74 79 |-tmember| data-ty|
|00005850| 70 65 20 27 28 66 69 78 | 6e 75 6d 20 69 6e 74 65 |pe '(fix|num inte|
|00005860| 67 65 72 20 6e 75 6d 62 | 65 72 29 29 20 30 29 0d |ger numb|er)) 0).|
|00005870| 09 09 20 20 28 28 73 65 | 74 71 20 74 65 6d 20 28 |.. ((se|tq tem (|
|00005880| 63 61 72 20 28 6c 6f 6f | 70 2d 74 6d 65 6d 62 65 |car (loo|p-tmembe|
|00005890| 72 0d 09 09 09 09 09 09 | 09 64 61 74 61 2d 74 79 |r.......|.data-ty|
|000058a0| 70 65 20 6c 6f 6f 70 2d | 66 6c 6f 61 74 69 6e 67 |pe loop-|floating|
|000058b0| 2d 70 6f 69 6e 74 2d 74 | 79 70 65 73 29 29 29 0d |-point-t|ypes))).|
|000058c0| 09 09 20 20 20 28 63 6f | 6e 64 20 28 28 6d 65 6d |.. (co|nd ((mem|
|000058d0| 62 65 72 20 74 65 6d 20 | 27 28 66 6c 6f 6e 75 6d |ber tem |'(flonum|
|000058e0| 20 66 6c 6f 61 74 29 29 | 20 30 2e 30 29 0d 09 09 | float))| 0.0)...|
|000058f0| 09 09 20 28 74 20 28 63 | 6f 65 72 63 65 20 30 20 |.. (t (c|oerce 0 |
|00005900| 74 65 6d 29 29 29 29 29 | 29 29 0d 0d 0d 28 64 65 |tem)))))|))...(de|
|00005910| 66 75 6e 20 6c 6f 6f 70 | 2d 6d 61 6b 65 2d 76 61 |fun loop|-make-va|
|00005920| 72 69 61 62 6c 65 20 28 | 6e 61 6d 65 20 69 6e 69 |riable (|name ini|
|00005930| 74 69 61 6c 69 7a 61 74 | 69 6f 6e 20 64 74 79 70 |tializat|ion dtyp|
|00005940| 65 29 0d 20 20 28 63 6f | 6e 64 20 28 28 6e 75 6c |e). (co|nd ((nul|
|00005950| 6c 20 6e 61 6d 65 29 0d | 09 09 20 20 20 28 63 6f |l name).|.. (co|
|00005960| 6e 64 20 28 28 6e 6f 74 | 20 28 6e 75 6c 6c 20 69 |nd ((not| (null i|
|00005970| 6e 69 74 69 61 6c 69 7a | 61 74 69 6f 6e 29 29 0d |nitializ|ation)).|
|00005980| 09 09 09 09 09 28 70 75 | 73 68 20 28 6c 69 73 74 |.....(pu|sh (list|
|00005990| 20 28 73 65 74 71 20 6e | 61 6d 65 20 28 6c 6f 6f | (setq n|ame (loo|
|000059a0| 70 2d 67 65 6e 74 65 6d | 70 20 27 6c 6f 6f 70 2d |p-gentem|p 'loop-|
|000059b0| 69 67 6e 6f 72 65 2d 29 | 29 0d 09 09 09 09 09 09 |ignore-)|).......|
|000059c0| 09 09 69 6e 69 74 69 61 | 6c 69 7a 61 74 69 6f 6e |..initia|lization|
|000059d0| 29 0d 09 09 09 09 09 09 | 20 20 6c 6f 6f 70 2d 76 |).......| loop-v|
|000059e0| 61 72 69 61 62 6c 65 73 | 29 0d 09 09 09 09 09 20 |ariables|)...... |
|000059f0| 20 28 70 75 73 68 20 60 | 28 69 67 6e 6f 72 65 20 | (push `|(ignore |
|00005a00| 2c 6e 61 6d 65 29 20 6c | 6f 6f 70 2d 64 65 63 6c |,name) l|oop-decl|
|00005a10| 61 72 61 74 69 6f 6e 73 | 29 29 29 29 0d 09 09 28 |arations|))))...(|
|00005a20| 28 61 74 6f 6d 20 6e 61 | 6d 65 29 0d 09 09 20 20 |(atom na|me)... |
|00005a30| 20 28 63 6f 6e 64 20 28 | 6c 6f 6f 70 2d 69 74 65 | (cond (|loop-ite|
|00005a40| 72 61 74 69 6f 6e 2d 76 | 61 72 69 61 62 6c 65 70 |ration-v|ariablep|
|00005a50| 0d 09 09 09 09 09 28 69 | 66 20 28 6d 65 6d 62 65 |......(i|f (membe|
|00005a60| 72 20 6e 61 6d 65 20 6c | 6f 6f 70 2d 69 74 65 72 |r name l|oop-iter|
|00005a70| 61 74 69 6f 6e 2d 76 61 | 72 69 61 62 6c 65 73 29 |ation-va|riables)|
|00005a80| 0d 09 09 09 09 09 09 28 | 6c 6f 6f 70 2d 73 69 6d |.......(|loop-sim|
|00005a90| 70 6c 65 2d 65 72 72 6f | 72 0d 09 09 09 09 09 09 |ple-erro|r.......|
|00005aa0| 20 20 20 22 44 75 70 6c | 69 63 61 74 65 64 20 69 | "Dupl|icated i|
|00005ab0| 74 65 72 61 74 69 6f 6e | 20 76 61 72 69 61 62 6c |teration| variabl|
|00005ac0| 65 20 73 6f 6d 65 77 68 | 65 72 65 20 69 6e 20 4c |e somewh|ere in L|
|00005ad0| 4f 4f 50 22 0d 09 09 09 | 09 09 09 20 20 20 6e 61 |OOP"....|... na|
|00005ae0| 6d 65 29 0d 09 09 09 09 | 09 09 28 70 75 73 68 20 |me).....|..(push |
|00005af0| 6e 61 6d 65 20 6c 6f 6f | 70 2d 69 74 65 72 61 74 |name loo|p-iterat|
|00005b00| 69 6f 6e 2d 76 61 72 69 | 61 62 6c 65 73 29 29 29 |ion-vari|ables)))|
|00005b10| 0d 09 09 09 09 20 28 28 | 61 73 73 6f 63 20 6e 61 |..... ((|assoc na|
|00005b20| 6d 65 20 6c 6f 6f 70 2d | 76 61 72 69 61 62 6c 65 |me loop-|variable|
|00005b30| 73 29 0d 09 09 09 09 09 | 28 6c 6f 6f 70 2d 73 69 |s)......|(loop-si|
|00005b40| 6d 70 6c 65 2d 65 72 72 | 6f 72 0d 09 09 09 09 09 |mple-err|or......|
|00005b50| 20 20 20 22 44 75 70 6c | 69 63 61 74 65 64 20 76 | "Dupl|icated v|
|00005b60| 61 72 20 69 6e 20 4c 4f | 4f 50 20 62 69 6e 64 20 |ar in LO|OP bind |
|00005b70| 62 6c 6f 63 6b 22 20 6e | 61 6d 65 29 29 29 0d 09 |block" n|ame)))..|
|00005b80| 09 20 20 20 28 6f 72 20 | 28 73 79 6d 62 6f 6c 70 |. (or |(symbolp|
|00005b90| 20 6e 61 6d 65 29 0d 09 | 09 09 20 20 20 28 6c 6f | name)..|.. (lo|
|00005ba0| 6f 70 2d 73 69 6d 70 6c | 65 2d 65 72 72 6f 72 20 |op-simpl|e-error |
|00005bb0| 22 42 61 64 20 76 61 72 | 69 61 62 6c 65 20 73 6f |"Bad var|iable so|
|00005bc0| 6d 65 77 68 65 72 65 20 | 69 6e 20 4c 4f 4f 50 22 |mewhere |in LOOP"|
|00005bd0| 20 6e 61 6d 65 29 29 0d | 09 09 20 20 20 28 6c 6f | name)).|.. (lo|
|00005be0| 6f 70 2d 64 65 63 6c 61 | 72 65 2d 76 61 72 69 61 |op-decla|re-varia|
|00005bf0| 62 6c 65 20 6e 61 6d 65 | 20 64 74 79 70 65 29 0d |ble name| dtype).|
|00005c00| 09 09 20 20 20 3b 20 57 | 65 20 75 73 65 20 41 53 |.. ; W|e use AS|
|00005c10| 53 4f 43 20 6f 6e 20 74 | 68 69 73 20 6c 69 73 74 |SOC on t|his list|
|00005c20| 20 74 6f 20 63 68 65 63 | 6b 20 66 6f 72 20 64 75 | to chec|k for du|
|00005c30| 70 6c 69 63 61 74 69 6f | 6e 73 20 28 61 62 6f 76 |plicatio|ns (abov|
|00005c40| 65 29 2c 0d 09 09 20 20 | 20 3b 20 73 6f 20 64 6f |e),... | ; so do|
|00005c50| 6e 27 74 20 6f 70 74 69 | 6d 69 7a 65 20 6f 75 74 |n't opti|mize out|
|00005c60| 20 74 68 69 73 20 6c 69 | 73 74 3a 0d 09 09 20 20 | this li|st:... |
|00005c70| 20 28 70 75 73 68 20 28 | 6c 69 73 74 20 6e 61 6d | (push (|list nam|
|00005c80| 65 20 28 6f 72 20 69 6e | 69 74 69 61 6c 69 7a 61 |e (or in|itializa|
|00005c90| 74 69 6f 6e 20 28 6c 6f | 6f 70 2d 74 79 70 65 64 |tion (lo|op-typed|
|00005ca0| 2d 69 6e 69 74 20 64 74 | 79 70 65 29 29 29 0d 09 |-init dt|ype)))..|
|00005cb0| 09 09 09 20 6c 6f 6f 70 | 2d 76 61 72 69 61 62 6c |... loop|-variabl|
|00005cc0| 65 73 29 29 0d 09 09 28 | 69 6e 69 74 69 61 6c 69 |es))...(|initiali|
|00005cd0| 7a 61 74 69 6f 6e 0d 09 | 09 20 20 20 28 63 6f 6e |zation..|. (con|
|00005ce0| 64 20 28 6c 6f 6f 70 2d | 75 73 65 2d 73 79 73 74 |d (loop-|use-syst|
|00005cf0| 65 6d 2d 64 65 73 74 72 | 75 63 74 75 72 69 6e 67 |em-destr|ucturing|
|00005d00| 3f 0d 09 09 09 09 09 28 | 6c 6f 6f 70 2d 64 65 63 |?......(|loop-dec|
|00005d10| 6c 61 72 65 2d 76 61 72 | 69 61 62 6c 65 20 6e 61 |lare-var|iable na|
|00005d20| 6d 65 20 64 74 79 70 65 | 29 0d 09 09 09 09 09 28 |me dtype|)......(|
|00005d30| 70 75 73 68 20 28 6c 69 | 73 74 20 6e 61 6d 65 20 |push (li|st name |
|00005d40| 69 6e 69 74 69 61 6c 69 | 7a 61 74 69 6f 6e 29 20 |initiali|zation) |
|00005d50| 6c 6f 6f 70 2d 76 61 72 | 69 61 62 6c 65 73 29 29 |loop-var|iables))|
|00005d60| 0d 09 09 09 09 20 28 74 | 20 28 6c 65 74 20 28 28 |..... (t| (let ((|
|00005d70| 6e 65 77 76 61 72 20 28 | 6c 6f 6f 70 2d 67 65 6e |newvar (|loop-gen|
|00005d80| 74 65 6d 70 20 27 6c 6f | 6f 70 2d 64 65 73 74 72 |temp 'lo|op-destr|
|00005d90| 75 63 74 75 72 65 2d 29 | 29 29 0d 09 09 09 09 09 |ucture-)|))......|
|00005da0| 20 20 28 70 75 73 68 20 | 28 6c 69 73 74 20 6e 65 | (push |(list ne|
|00005db0| 77 76 61 72 20 69 6e 69 | 74 69 61 6c 69 7a 61 74 |wvar ini|tializat|
|00005dc0| 69 6f 6e 29 20 6c 6f 6f | 70 2d 76 61 72 69 61 62 |ion) loo|p-variab|
|00005dd0| 6c 65 73 29 0d 09 09 09 | 09 09 20 20 3b 20 4c 4f |les)....|.. ; LO|
|00005de0| 4f 50 2d 44 45 53 45 54 | 51 2d 43 52 4f 43 4b 53 |OP-DESET|Q-CROCKS|
|00005df0| 20 67 61 74 68 65 72 65 | 64 20 69 6e 20 72 65 76 | gathere|d in rev|
|00005e00| 65 72 73 65 20 6f 72 64 | 65 72 2e 0d 09 09 09 09 |erse ord|er......|
|00005e10| 09 20 20 28 73 65 74 71 | 20 6c 6f 6f 70 2d 64 65 |. (setq| loop-de|
|00005e20| 73 65 74 71 2d 63 72 6f | 63 6b 73 0d 09 09 09 09 |setq-cro|cks.....|
|00005e30| 09 09 09 28 6c 69 73 74 | 2a 20 6e 61 6d 65 20 6e |...(list|* name n|
|00005e40| 65 77 76 61 72 20 6c 6f | 6f 70 2d 64 65 73 65 74 |ewvar lo|op-deset|
|00005e50| 71 2d 63 72 6f 63 6b 73 | 29 29 0d 09 09 09 09 09 |q-crocks|))......|
|00005e60| 20 20 28 6c 6f 6f 70 2d | 6d 61 6b 65 2d 76 61 72 | (loop-|make-var|
|00005e70| 69 61 62 6c 65 20 6e 61 | 6d 65 20 6e 69 6c 20 64 |iable na|me nil d|
|00005e80| 74 79 70 65 29 29 29 29 | 29 0d 09 09 28 74 20 28 |type))))|)...(t (|
|00005e90| 6c 65 74 20 28 28 74 63 | 61 72 20 6e 69 6c 29 20 |let ((tc|ar nil) |
|00005ea0| 28 74 63 64 72 20 6e 69 | 6c 29 29 0d 09 09 09 20 |(tcdr ni|l)).... |
|00005eb0| 28 69 66 20 28 61 74 6f | 6d 20 64 74 79 70 65 29 |(if (ato|m dtype)|
|00005ec0| 20 28 73 65 74 71 20 74 | 63 61 72 20 28 73 65 74 | (setq t|car (set|
|00005ed0| 71 20 74 63 64 72 20 64 | 74 79 70 65 29 29 0d 09 |q tcdr d|type))..|
|00005ee0| 09 09 20 20 20 28 73 65 | 74 71 20 74 63 61 72 20 |.. (se|tq tcar |
|00005ef0| 28 63 61 72 20 64 74 79 | 70 65 29 20 74 63 64 72 |(car dty|pe) tcdr|
|00005f00| 20 28 63 64 72 20 64 74 | 79 70 65 29 29 29 0d 09 | (cdr dt|ype)))..|
|00005f10| 09 09 20 28 6c 6f 6f 70 | 2d 6d 61 6b 65 2d 76 61 |.. (loop|-make-va|
|00005f20| 72 69 61 62 6c 65 20 28 | 63 61 72 20 6e 61 6d 65 |riable (|car name|
|00005f30| 29 20 6e 69 6c 20 74 63 | 61 72 29 0d 09 09 09 20 |) nil tc|ar).... |
|00005f40| 28 6c 6f 6f 70 2d 6d 61 | 6b 65 2d 76 61 72 69 61 |(loop-ma|ke-varia|
|00005f50| 62 6c 65 20 28 63 64 72 | 20 6e 61 6d 65 29 20 6e |ble (cdr| name) n|
|00005f60| 69 6c 20 74 63 64 72 29 | 29 29 29 0d 20 20 6e 61 |il tcdr)|))). na|
|00005f70| 6d 65 29 0d 0d 0d 28 64 | 65 66 75 6e 20 6c 6f 6f |me)...(d|efun loo|
|00005f80| 70 2d 6d 61 6b 65 2d 69 | 74 65 72 61 74 69 6f 6e |p-make-i|teration|
|00005f90| 2d 76 61 72 69 61 62 6c | 65 20 28 6e 61 6d 65 20 |-variabl|e (name |
|00005fa0| 69 6e 69 74 69 61 6c 69 | 7a 61 74 69 6f 6e 20 64 |initiali|zation d|
|00005fb0| 74 79 70 65 29 0d 09 28 | 6c 65 74 20 28 28 6c 6f |type)..(|let ((lo|
|00005fc0| 6f 70 2d 69 74 65 72 61 | 74 69 6f 6e 2d 76 61 72 |op-itera|tion-var|
|00005fd0| 69 61 62 6c 65 70 20 74 | 29 29 0d 09 20 20 20 28 |iablep t|)).. (|
|00005fe0| 6c 6f 6f 70 2d 6d 61 6b | 65 2d 76 61 72 69 61 62 |loop-mak|e-variab|
|00005ff0| 6c 65 20 6e 61 6d 65 20 | 69 6e 69 74 69 61 6c 69 |le name |initiali|
|00006000| 7a 61 74 69 6f 6e 20 64 | 74 79 70 65 29 29 29 0d |zation d|type))).|
|00006010| 0d 0d 28 64 65 66 75 6e | 20 6c 6f 6f 70 2d 64 65 |..(defun| loop-de|
|00006020| 63 6c 61 72 65 2d 76 61 | 72 69 61 62 6c 65 20 28 |clare-va|riable (|
|00006030| 6e 61 6d 65 20 64 74 79 | 70 65 29 0d 09 28 63 6f |name dty|pe)..(co|
|00006040| 6e 64 20 28 28 6f 72 20 | 28 6e 75 6c 6c 20 6e 61 |nd ((or |(null na|
|00006050| 6d 65 29 20 28 6e 75 6c | 6c 20 64 74 79 70 65 29 |me) (nul|l dtype)|
|00006060| 29 20 6e 69 6c 29 0d 09 | 09 20 20 28 28 73 79 6d |) nil)..|. ((sym|
|00006070| 62 6f 6c 70 20 6e 61 6d | 65 29 0d 09 09 09 20 28 |bolp nam|e).... (|
|00006080| 63 6f 6e 64 20 28 28 6d | 65 6d 62 65 72 20 6e 61 |cond ((m|ember na|
|00006090| 6d 65 20 6c 6f 6f 70 2d | 6e 6f 64 65 63 6c 61 72 |me loop-|nodeclar|
|000060a0| 65 29 29 0d 09 09 09 09 | 20 20 20 28 28 64 61 74 |e)).....| ((dat|
|000060b0| 61 2d 74 79 70 65 3f 20 | 64 74 79 70 65 29 0d 09 |a-type? |dtype)..|
|000060c0| 09 09 09 09 20 20 28 73 | 65 74 71 20 6c 6f 6f 70 |.... (s|etq loop|
|000060d0| 2d 64 65 63 6c 61 72 61 | 74 69 6f 6e 73 0d 09 09 |-declara|tions...|
|000060e0| 09 09 09 09 09 28 61 70 | 70 65 6e 64 20 28 76 61 |.....(ap|pend (va|
|000060f0| 72 69 61 62 6c 65 2d 64 | 65 63 6c 61 72 61 74 69 |riable-d|eclarati|
|00006100| 6f 6e 73 20 64 74 79 70 | 65 20 6e 61 6d 65 29 0d |ons dtyp|e name).|
|00006110| 09 09 09 09 09 09 09 09 | 09 6c 6f 6f 70 2d 64 65 |........|.loop-de|
|00006120| 63 6c 61 72 61 74 69 6f | 6e 73 29 29 29 0d 09 09 |claratio|ns)))...|
|00006130| 09 09 20 20 20 28 74 20 | 28 70 75 73 68 20 60 28 |.. (t |(push `(|
|00006140| 74 79 70 65 20 2c 64 74 | 79 70 65 20 2c 6e 61 6d |type ,dt|ype ,nam|
|00006150| 65 29 20 6c 6f 6f 70 2d | 64 65 63 6c 61 72 61 74 |e) loop-|declarat|
|00006160| 69 6f 6e 73 29 29 29 29 | 0d 09 09 20 20 28 28 63 |ions))))|... ((c|
|00006170| 6f 6e 73 70 20 6e 61 6d | 65 29 0d 09 09 09 20 20 |onsp nam|e).... |
|00006180| 28 63 6f 6e 64 20 28 28 | 63 6f 6e 73 70 20 64 74 |(cond ((|consp dt|
|00006190| 79 70 65 29 0d 09 09 09 | 09 09 20 20 20 28 6c 6f |ype)....|.. (lo|
|000061a0| 6f 70 2d 64 65 63 6c 61 | 72 65 2d 76 61 72 69 61 |op-decla|re-varia|
|000061b0| 62 6c 65 20 28 63 61 72 | 20 6e 61 6d 65 29 20 28 |ble (car| name) (|
|000061c0| 63 61 72 20 64 74 79 70 | 65 29 29 0d 09 09 09 09 |car dtyp|e)).....|
|000061d0| 09 20 20 20 28 6c 6f 6f | 70 2d 64 65 63 6c 61 72 |. (loo|p-declar|
|000061e0| 65 2d 76 61 72 69 61 62 | 6c 65 20 28 63 64 72 20 |e-variab|le (cdr |
|000061f0| 6e 61 6d 65 29 20 28 63 | 64 72 20 64 74 79 70 65 |name) (c|dr dtype|
|00006200| 29 29 29 0d 09 09 09 09 | 09 28 74 20 28 6c 6f 6f |))).....|.(t (loo|
|00006210| 70 2d 64 65 63 6c 61 72 | 65 2d 76 61 72 69 61 62 |p-declar|e-variab|
|00006220| 6c 65 20 28 63 61 72 20 | 6e 61 6d 65 29 20 64 74 |le (car |name) dt|
|00006230| 79 70 65 29 0d 09 09 09 | 09 09 20 20 20 28 6c 6f |ype)....|.. (lo|
|00006240| 6f 70 2d 64 65 63 6c 61 | 72 65 2d 76 61 72 69 61 |op-decla|re-varia|
|00006250| 62 6c 65 20 28 63 64 72 | 20 6e 61 6d 65 29 20 64 |ble (cdr| name) d|
|00006260| 74 79 70 65 29 29 29 29 | 0d 09 09 20 20 28 74 20 |type))))|... (t |
|00006270| 28 6c 6f 6f 70 2d 73 69 | 6d 70 6c 65 2d 65 72 72 |(loop-si|mple-err|
|00006280| 6f 72 20 22 63 61 6e 27 | 74 20 68 61 63 6b 20 74 |or "can'|t hack t|
|00006290| 68 69 73 22 0d 09 09 09 | 09 09 09 09 09 28 6c 69 |his"....|.....(li|
|000062a0| 73 74 20 27 6c 6f 6f 70 | 2d 64 65 63 6c 61 72 65 |st 'loop|-declare|
|000062b0| 2d 76 61 72 69 61 62 6c | 65 20 6e 61 6d 65 20 64 |-variabl|e name d|
|000062c0| 74 79 70 65 29 29 29 29 | 29 0d 0d 0d 28 64 65 66 |type))))|)...(def|
|000062d0| 75 6e 20 6c 6f 6f 70 2d | 63 6f 6e 73 74 61 6e 74 |un loop-|constant|
|000062e0| 70 20 28 66 6f 72 6d 29 | 0d 20 20 28 63 6f 6e 73 |p (form)|. (cons|
|000062f0| 74 61 6e 74 70 20 66 6f | 72 6d 29 29 0d 0d 28 64 |tantp fo|rm))..(d|
|00006300| 65 66 75 6e 20 6c 6f 6f | 70 2d 6d 61 79 62 65 2d |efun loo|p-maybe-|
|00006310| 62 69 6e 64 2d 66 6f 72 | 6d 20 28 66 6f 72 6d 20 |bind-for|m (form |
|00006320| 64 61 74 61 2d 74 79 70 | 65 3f 29 0d 09 3b 20 43 |data-typ|e?)..; C|
|00006330| 6f 6e 73 69 64 65 72 20 | 69 6d 70 6c 65 6d 65 6e |onsider |implemen|
|00006340| 74 61 74 69 6f 6e 73 20 | 77 68 69 63 68 20 77 69 |tations |which wi|
|00006350| 6c 6c 20 6e 6f 74 20 6b | 65 65 70 20 45 51 20 71 |ll not k|eep EQ q|
|00006360| 75 6f 74 65 64 20 63 6f | 6e 73 74 61 6e 74 73 0d |uoted co|nstants.|
|00006370| 09 3b 20 45 51 20 61 66 | 74 65 72 20 63 6f 6d 70 |.; EQ af|ter comp|
|00006380| 69 6c 61 74 69 6f 6e 20 | 26 20 6c 6f 61 64 69 6e |ilation |& loadin|
|00006390| 67 2e 0d 09 3b 20 4e 6f | 74 65 20 46 55 4e 43 54 |g...; No|te FUNCT|
|000063a0| 49 4f 4e 20 69 73 20 6e | 6f 74 20 68 61 63 6b 65 |ION is n|ot hacke|
|000063b0| 64 2c 20 6d 75 6c 74 69 | 70 6c 65 20 6f 63 63 75 |d, multi|ple occu|
|000063c0| 72 65 6e 63 65 73 20 6d | 69 67 68 74 20 63 61 75 |rences m|ight cau|
|000063d0| 73 65 20 74 68 65 0d 09 | 3b 20 63 6f 6d 70 69 6c |se the..|; compil|
|000063e0| 65 72 20 74 6f 20 62 72 | 65 61 6b 20 74 68 65 20 |er to br|eak the |
|000063f0| 66 75 6e 63 74 69 6f 6e | 20 6f 66 66 20 6d 75 6c |function| off mul|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.